[launchd-changes] [23474] trunk/launchd/src/launchd_core_logic.c
source_changes at macosforge.org
source_changes at macosforge.org
Fri Dec 21 13:06:38 PST 2007
Revision: 23474
http://trac.macosforge.org/projects/launchd/changeset/23474
Author: zarzycki at apple.com
Date: 2007-12-21 13:06:36 -0800 (Fri, 21 Dec 2007)
Log Message:
-----------
<rdar://problem/5652211> Bug: launchd_core_logic.c:6375 (23433):0: (target_j = jobmgr_find_by_pid(j->mgr, target_pid, true)) != NULL
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-12-20 00:43:45 UTC (rev 23473)
+++ trunk/launchd/src/launchd_core_logic.c 2007-12-21 21:06:36 UTC (rev 23474)
@@ -405,9 +405,9 @@
static void job_callback_read(job_t j, int ident);
static void job_log_stray_pg(job_t j);
static void job_log_chidren_without_exec(job_t j);
-static job_t job_new_anonymous(jobmgr_t jm, pid_t anonpid);
-static job_t job_new(jobmgr_t jm, const char *label, const char *prog, const char *const *argv);
-static job_t job_new_via_mach_init(job_t j, const char *cmd, uid_t uid, bool ond);
+static job_t job_new_anonymous(jobmgr_t jm, pid_t anonpid) __attribute__((malloc, nonnull, warn_unused_result));
+static job_t job_new(jobmgr_t jm, const char *label, const char *prog, const char *const *argv) __attribute__((malloc, nonnull(1,2), warn_unused_result));
+static job_t job_new_via_mach_init(job_t j, const char *cmd, uid_t uid, bool ond) __attribute__((malloc, nonnull, warn_unused_result));
static const char *job_prog(job_t j);
static jobmgr_t job_get_bs(job_t j);
static void job_kill(job_t j);
@@ -1055,11 +1055,13 @@
gid_t kp_egid, kp_gid, kp_svgid;
if (!jobmgr_assumes(jm, anonpid != 0)) {
+ errno = EINVAL;
return NULL;
}
if (!jobmgr_assumes(jm, anonpid < 100000)) {
/* The kernel current defines PID_MAX to be 99999, but that define isn't exported */
+ errno = EINVAL;
return NULL;
}
@@ -1074,6 +1076,7 @@
}
if (!jobmgr_assumes(jm, kp.kp_proc.p_comm[0] != '\0')) {
+ errno = EINVAL;
return NULL;
}
@@ -6502,6 +6505,15 @@
return BOOTSTRAP_NO_MEMORY;
}
+ target_j = jobmgr_find_by_pid(j->mgr, target_pid, true);
+
+ if (unlikely(target_j == NULL)) {
+ if (job_assumes(j, errno == ESRCH)) {
+ job_log(j, LOG_ERR, "Could not find PID %u while trying to set Mach bootstrap service policy: %s", target_pid, target_service);
+ }
+ return BOOTSTRAP_NO_MEMORY;
+ }
+
if (!job_assumes(j, (target_j = jobmgr_find_by_pid(j->mgr, target_pid, true)) != NULL)) {
return BOOTSTRAP_NO_MEMORY;
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20071221/263075ab/attachment.html
More information about the launchd-changes
mailing list