Revision
23391
Author
zarzycki@apple.com
Date
2007-09-14 17:22:39 -0700 (Fri, 14 Sep 2007)

Log Message

<rdar://problem/5483598> Survive PID death during session migration

Modified Paths

Diff

Modified: trunk/launchd/src/launchd_core_logic.c (23390 => 23391)


--- trunk/launchd/src/launchd_core_logic.c	2007-09-14 21:02:21 UTC (rev 23390)
+++ trunk/launchd/src/launchd_core_logic.c	2007-09-15 00:22:39 UTC (rev 23391)
@@ -5915,9 +5915,10 @@
 
 		j_for_service = jobmgr_find_by_pid(jmr, target_pid, true);
 
-		if (!jobmgr_assumes(jmr, j_for_service != NULL)) {
-			kr = BOOTSTRAP_NO_MEMORY;
-			goto out;
+		if (!j_for_service) {
+			/* The PID probably exited */
+			job_assumes(j, launchd_mport_deallocate(l2l_ports[l2l_i]) == KERN_SUCCESS);
+			continue;
 		}
 
 		if ((ms = machservice_new(j_for_service, serv_name, &l2l_ports[l2l_i], serv_perpid))) {