Revision: 22905 http://trac.macosforge.org/projects/launchd/changeset/22905 Author: zarzycki@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);
participants (1)
-
source_changes@macosforge.org