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

source_changes at macosforge.org source_changes at macosforge.org
Fri Apr 27 10:11:50 PDT 2007


Revision: 23239
          http://trac.macosforge.org/projects/launchd/changeset/23239
Author:   zarzycki at apple.com
Date:     2007-04-27 10:11:50 -0700 (Fri, 27 Apr 2007)

Log Message:
-----------
More clean up and sanity checking.

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-04-27 16:52:28 UTC (rev 23238)
+++ trunk/launchd/src/launchd_core_logic.c	2007-04-27 17:11:50 UTC (rev 23239)
@@ -5206,35 +5206,29 @@
 		j = j2;
 		jobmgr_log(j->mgr, LOG_DEBUG, "Renaming to: %s", session_type);
 		strcpy(j->mgr->name, session_type);
-		job_assumes(j, launchd_mport_deallocate(target_subset) == KERN_SUCCESS);
 
 		bootstrapper = job_new(j->mgr, thelabel, NULL, bootstrap_tool);
 		if (job_assumes(j, bootstrapper != NULL)) {
 			job_dispatch(bootstrapper, true);
 		}
-		return 0;
+
+		kr = 0;
+		goto out;
 	}
 
 	if (getpid() != 1 && job_mig_intran(target_subset)) {
-		job_assumes(j, launchd_mport_deallocate(target_subset) == KERN_SUCCESS);
-		return 0;
+		kr = 0;
+		goto out;
 	}
 
-	kr = _vproc_grab_subset(target_subset, &reqport,
-			&rcvright, &l2l_names, &l2l_name_cnt,
-			&l2l_pids, &l2l_pid_cnt,
-			&l2l_ports, &l2l_port_cnt);
-
-	if (job_assumes(j, kr == 0)) {
-		job_assumes(j, launchd_mport_deallocate(target_subset) == KERN_SUCCESS);
-	} else {
+	if (!job_assumes(j, (kr = _vproc_grab_subset(target_subset, &reqport, &rcvright, &l2l_names, &l2l_name_cnt, &l2l_pids, &l2l_pid_cnt, &l2l_ports, &l2l_port_cnt)) == 0)) {
 		goto out;
 	}
 
 	launchd_assert(l2l_name_cnt == l2l_port_cnt);
 	launchd_assert(l2l_name_cnt == l2l_pid_cnt);
 
-	if ((jmr = jobmgr_new(j->mgr, reqport, rcvright, false, session_type)) == NULL) {
+	if (!job_assumes(j, (jmr = jobmgr_new(j->mgr, reqport, rcvright, false, session_type)) != NULL)) {
 		kr = BOOTSTRAP_NO_MEMORY;
 		goto out;
 	}
@@ -5244,6 +5238,7 @@
 		struct machservice *ms;
 
 		if (!jobmgr_assumes(jmr, j_for_service != NULL)) {
+			kr = BOOTSTRAP_NO_MEMORY;
 			goto out;
 		}
 
@@ -5264,7 +5259,10 @@
 	if (l2l_pids) {
 		mig_deallocate((vm_address_t)l2l_pids, l2l_pid_cnt * sizeof(l2l_pids[0]));
 	}
-	if (kr && jmr) {
+
+	if (kr == 0) {
+		job_assumes(j, launchd_mport_deallocate(target_subset) == KERN_SUCCESS);
+	} else if (jmr) {
 		jobmgr_shutdown(jmr);
 	}
 

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


More information about the launchd-changes mailing list