Revision: 23476 http://trac.macosforge.org/projects/launchd/changeset/23476 Author: zarzycki@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; } }
participants (1)
-
source_changes@macosforge.org