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

source_changes at macosforge.org source_changes at macosforge.org
Wed Mar 19 14:43:26 PDT 2008


Revision: 23562
          http://trac.macosforge.org/projects/launchd/changeset/23562
Author:   zarzycki at apple.com
Date:     2008-03-19 14:43:25 -0700 (Wed, 19 Mar 2008)

Log Message:
-----------
Don't accidentally machservice_delete() services that are managed with recv-rights.

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

Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c	2008-03-19 21:35:38 UTC (rev 23561)
+++ trunk/launchd/src/launchd_core_logic.c	2008-03-19 21:43:25 UTC (rev 23562)
@@ -4183,7 +4183,7 @@
 	}
 
 	SLIST_FOREACH(ms, &j->machservices, sle) {
-		if (ms->recv && ms->isActive) {
+		if (ms->recv && machservice_active(ms)) {
 			return "Mach service is still active";
 		}
 	}
@@ -4720,7 +4720,7 @@
 		}
 
 		LIST_FOREACH_SAFE(ms, &port_hash[HASH_PORT(port)], port_hash_sle, next_ms) {
-			if (ms->port == port) {
+			if (ms->port == port && !ms->recv) {
 				machservice_delete(ms->job, ms, true);
 			}
 		}
@@ -4811,7 +4811,7 @@
 		job_assumes(j, host_reboot(mach_host_self(), HOST_REBOOT_DEBUGGER) == KERN_SUCCESS);
 	}
 
-	if (ms->recv && job_assumes(j, !ms->isActive)) {
+	if (ms->recv && job_assumes(j, !machservice_active(ms)) {
 		job_assumes(j, launchd_mport_close_recv(ms->port) == KERN_SUCCESS);
 	}
 

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


More information about the launchd-changes mailing list