Modified: trunk/launchd/src/launchd_runtime.c (23304 => 23305)
--- trunk/launchd/src/launchd_runtime.c 2007-07-11 22:11:37 UTC (rev 23304)
+++ trunk/launchd/src/launchd_runtime.c 2007-07-11 22:29:16 UTC (rev 23305)
@@ -1195,6 +1195,7 @@
runtime_log_uncork_pending_drain(void)
{
mach_msg_type_number_t outvalCnt;
+ mach_port_t tmp_port;
vm_offset_t outval;
if (!drain_reply_port) {
@@ -1209,12 +1210,13 @@
return;
}
- if (!launchd_assumes(job_mig_log_drain_reply(drain_reply_port, 0, outval, outvalCnt) == 0)) {
- launchd_assumes(launchd_mport_deallocate(drain_reply_port) == KERN_SUCCESS);
+ tmp_port = drain_reply_port;
+ drain_reply_port = MACH_PORT_NULL;
+
+ if (!launchd_assumes(job_mig_log_drain_reply(tmp_port, 0, outval, outvalCnt) == 0)) {
+ launchd_assumes(launchd_mport_deallocate(tmp_port) == KERN_SUCCESS);
}
- drain_reply_port = MACH_PORT_NULL;
-
mig_deallocate(outval, outvalCnt);
}