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

source_changes at macosforge.org source_changes at macosforge.org
Wed Sep 12 17:24:55 PDT 2007


Revision: 23374
          http://trac.macosforge.org/projects/launchd/changeset/23374
Author:   zarzycki at apple.com
Date:     2007-09-12 17:24:54 -0700 (Wed, 12 Sep 2007)

Log Message:
-----------
<rdar://problem/5477111> 'ssh localhost sudo launchctl' kills machine

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-09-12 19:50:15 UTC (rev 23373)
+++ trunk/launchd/src/launchd_core_logic.c	2007-09-13 00:24:54 UTC (rev 23374)
@@ -454,6 +454,7 @@
 static mach_port_t the_exception_server;
 static bool did_first_per_user_launchd_BootCache_hack;
 static jobmgr_t background_jobmgr;
+static job_t workaround_5477111;
 static mach_timebase_info_data_t tbi;
 
 /* process wide globals */
@@ -1858,11 +1859,19 @@
 void
 job_mig_destructor(job_t j)
 {
-	if (j && j->unload_at_mig_return) {
+	/*
+	 * 5477111
+	 *
+	 * 'j' can be invalid at this point. We should fix this up after Leopard ships.
+	 */
+
+	if (j && j != workaround_5477111 && j->unload_at_mig_return) {
 		job_log(j, LOG_NOTICE, "Unloading PID %u at MIG return.", j->p);
 		job_remove(j);
 	}
 
+	workaround_5477111 = NULL;
+
 	calendarinterval_sanity_check();
 }
 
@@ -5968,6 +5977,8 @@
 	jm->req_port = 0;
 	jm->jm_port = 0;
 
+	workaround_5477111 = j;
+
 	jobmgr_shutdown(jm);
 
 	return BOOTSTRAP_SUCCESS;

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


More information about the launchd-changes mailing list