[launchd-changes] [23476] trunk/launchd/src/launchd_core_logic.c

source_changes at macosforge.org source_changes at macosforge.org
Fri Dec 21 13:53:38 PST 2007


Revision: 23476
          http://trac.macosforge.org/projects/launchd/changeset/23476
Author:   zarzycki at apple.com
Date:     2007-12-21 13:53:37 -0800 (Fri, 21 Dec 2007)

Log Message:
-----------
<rdar://problem/5317778> Bug: launchd_core_logic.c:5810 (23281):0: mspolicy_new(target_j, target_service, flags & BOOTSTRAP_ALLOW_LOOKUP, flags & BOOTSTRAP_PER_PID_SERVICE, false)

Modified Paths:
--------------
    trunk/launchd/src/launchd_core_logic.c

Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c	2007-12-21 21:37:17 UTC (rev 23475)
+++ trunk/launchd/src/launchd_core_logic.c	2007-12-21 21:53:37 UTC (rev 23476)
@@ -6522,7 +6522,11 @@
 	if (SLIST_EMPTY(&j->mspolicies)) {
 		job_log(j, LOG_DEBUG, "Setting policy on job \"%s\" for Mach service: %s", target_j->label, target_service);
 		if (target_service[0]) {
-			job_assumes(j, mspolicy_new(target_j, target_service, flags & BOOTSTRAP_ALLOW_LOOKUP, flags & BOOTSTRAP_PER_PID_SERVICE, false));
+			bool r = mspolicy_new(target_j, target_service, flags & BOOTSTRAP_ALLOW_LOOKUP, flags & BOOTSTRAP_PER_PID_SERVICE, false);
+
+			if (unlikely(!r) && job_assumes(j, errno == EEXIST)) {
+				job_log(j, LOG_ERR, "Tried to update a known policy on PID %u: %s", target_pid, target_service);
+			}
 		} else {
 			target_j->deny_unknown_mslookups = !(flags & BOOTSTRAP_ALLOW_LOOKUP);
 		}
@@ -6668,6 +6672,7 @@
 		if (msp->per_pid != pid_local) {
 			continue;
 		} else if (strcmp(msp->name, name) == 0) {
+			errno = EEXIST;
 			return false;
 		}
 	}

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20071221/81874453/attachment.html


More information about the launchd-changes mailing list