Revision: 23024 http://trac.macosforge.org/projects/launchd/changeset/23024 Author: zarzycki@apple.com Date: 2007-01-26 15:45:13 -0800 (Fri, 26 Jan 2007) Log Message: ----------- PIDs shouldn't be running around without user records to back the UIDs assigned to the process. 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-01-25 21:46:03 UTC (rev 23023) +++ trunk/launchd/src/launchd_core_logic.c 2007-01-26 23:45:13 UTC (rev 23024) @@ -404,7 +404,7 @@ job_stop(job_t j) { if (j->p) { - kill(j->p, SIGTERM); + job_assumes(j, kill(j->p, SIGTERM) != -1); } } @@ -1975,13 +1975,17 @@ uid_t i_euid = kp[i].kp_eproc.e_ucred.cr_uid; uid_t i_uid = kp[i].kp_eproc.e_pcred.p_ruid; uid_t i_svuid = kp[i].kp_eproc.e_pcred.p_svuid; + pid_t i_pid = kp[i].kp_proc.p_pid; if (i_euid != u && i_uid != u && i_svuid != u) { continue; } job_log(j, LOG_ERR, "PID %u \"%s\" has no account to back it! Real/effective/saved UIDs: %u/%u/%u", - kp[i].kp_proc.p_pid, kp[i].kp_proc.p_comm, i_uid, i_euid, i_svuid); + i_pid, kp[i].kp_proc.p_comm, i_uid, i_euid, i_svuid); + + /* Ask the accountless process to exit. */ + job_assumes(j, kill(i_pid, SIGTERM) != -1); } out: