Revision
23218
Author
zarzycki@apple.com
Date
2007-04-12 13:54:44 -0700 (Thu, 12 Apr 2007)

Log Message

Miscellaneous fixes.

Modified Paths

Diff

Modified: trunk/launchd/src/launchd_core_logic.c (23217 => 23218)


--- trunk/launchd/src/launchd_core_logic.c	2007-04-12 02:06:44 UTC (rev 23217)
+++ trunk/launchd/src/launchd_core_logic.c	2007-04-12 20:54:44 UTC (rev 23218)
@@ -1777,7 +1777,10 @@
 		j->forkfd = 0;
 	}
 
-	if (!j->anonymous && !job_assumes(j, wait4(j->p, &status, 0, &ru) != -1)) {
+	if (j->anonymous) {
+		status = 0;
+		memset(&ru, 0, sizeof(ru));
+	} else if (!job_assumes(j, wait4(j->p, &status, 0, &ru) != -1)) {
 		job_log(j, LOG_NOTICE, "Working around 5020256. Assuming the job crashed.");
 
 		status = W_EXITCODE(0, SIGSEGV);
@@ -3295,7 +3298,9 @@
 void
 machservice_watch(job_t j, struct machservice *ms)
 {
-	job_assumes(j, runtime_add_mport(ms->port, NULL, 0) == KERN_SUCCESS);
+	if (job_assumes(j, ms->recv)) {
+		job_assumes(j, runtime_add_mport(ms->port, NULL, 0) == KERN_SUCCESS);
+	}
 }
 
 void