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

source_changes at macosforge.org source_changes at macosforge.org
Tue Oct 17 11:29:45 PDT 2006


Revision: 22905
          http://trac.macosforge.org/projects/launchd/changeset/22905
Author:   zarzycki at apple.com
Date:     2006-10-17 11:29:44 -0700 (Tue, 17 Oct 2006)

Log Message:
-----------
Deallocate the per job Mach port sooner.

This port is used if-and-only-if the job is created via bootstrap_create_server().

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

Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c	2006-10-17 17:56:58 UTC (rev 22904)
+++ trunk/launchd/src/launchd_core_logic.c	2006-10-17 18:29:44 UTC (rev 22905)
@@ -689,10 +689,12 @@
 	}
 
 	/* preflight the string so we know how big it is */
-	sprintf(buf, "100000.%s", basename((char *)argv[0]));
+	sprintf(buf, "%s.%s", sizeof(void *) == 8 ? "0xdeadbeeffeedface" : "0xbabecafe", basename((char *)argv[0]));
 
 	j = job_new(jbs, buf, NULL, argv, NULL, MACH_PORT_NULL);
 
+	sprintf(j->label, "%p.%s", j, basename(j->argv[0]));
+
 	free(argv);
 
 	if (!job_assumes(jbs, j != NULL)) {
@@ -713,10 +715,8 @@
 		goto out_bad;
 	}
 
-	sprintf(j->label, "%d.%s", MACH_PORT_INDEX(j->bs_port), basename(j->argv[0]));
+	job_log(j, LOG_INFO, "Legacy%s server created in bootstrap: %x", ond ? " on-demand" : "", jbs->bs_port);
 
-	job_log(j, LOG_INFO, "New%s server in bootstrap: %x", ond ? " on-demand" : "", jbs->bs_port);
-
 	return j;
 
 out_bad:
@@ -3175,6 +3175,9 @@
 {
 	j->priv_port_has_senders = false;
 
+	job_assumes(j, launchd_mport_close_recv(j->bs_port) == KERN_SUCCESS);
+	j->bs_port = 0;
+
 	job_log(j, LOG_DEBUG, "No more senders on privileged Mach bootstrap port");
 
 	job_dispatch(j, false);

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


More information about the launchd-changes mailing list