Revision
23314
Author
zarzycki@apple.com
Date
2007-07-16 14:36:44 -0700 (Mon, 16 Jul 2007)

Log Message

<rdar://problem/5338127> Bug: launchd_core_logic.c:5095 (23304):8: (errno = task_set_special_port(child_task, ms->special_port_num, ms->port)) == KERN_SUCCESS

Modified Paths

Diff

Modified: trunk/launchd/src/launchd_core_logic.c (23313 => 23314)


--- trunk/launchd/src/launchd_core_logic.c	2007-07-16 17:21:16 UTC (rev 23313)
+++ trunk/launchd/src/launchd_core_logic.c	2007-07-16 21:36:44 UTC (rev 23314)
@@ -5101,7 +5101,24 @@
 			/* The TASK_ACCESS_PORT funny business is to workaround 5325399. */
 			continue;
 		}
-		job_assumes(j, (errno = task_set_special_port(child_task, ms->special_port_num, ms->port)) == KERN_SUCCESS);
+
+		errno = task_set_special_port(child_task, ms->special_port_num, ms->port);
+
+		if (errno) {
+			int desired_log_devel = LOG_ERR;
+
+			if (j->anonymous) {
+				/* 5338127 */
+
+				desired_log_devel = LOG_WARNING;
+
+				if (ms->special_port_num == TASK_SEATBELT_PORT) {
+					desired_log_devel = LOG_DEBUG;
+				}
+			}
+
+			job_log(j, desired_log_devel, "Could not setup Mach task special port %u: %s", ms->special_port_num, mach_error_string(errno));
+		}
 	}
 
 	job_assumes(j, launchd_mport_deallocate(child_task) == KERN_SUCCESS);