Changeset 23526
- Timestamp:
- 03/03/08 16:46:00 (9 months ago)
- Files:
-
- 1 modified
-
trunk/launchd/src/launchd_core_logic.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/launchd/src/launchd_core_logic.c
r23525 r23526 6012 6012 struct ldcred *ldc = runtime_get_caller_creds(); 6013 6013 kern_return_t kr; 6014 bool per_pid_lookup = flags & BOOTSTRAP_PER_PID_SERVICE; 6014 6015 6015 6016 if (!launchd_assumes(j != NULL)) { … … 6024 6025 #endif 6025 6026 6026 if (unlikely(!mspolicy_check(j, servicename, flags & BOOTSTRAP_PER_PID_SERVICE))) {6027 if (unlikely(!mspolicy_check(j, servicename, per_pid_lookup))) { 6027 6028 job_log(j, LOG_NOTICE, "Policy denied Mach service lookup: %s", servicename); 6028 6029 return BOOTSTRAP_NOT_PRIVILEGED; 6029 6030 } 6030 6031 6031 if ( flags & BOOTSTRAP_PER_PID_SERVICE) {6032 if (per_pid_lookup) { 6032 6033 ms = jobmgr_lookup_service(j->mgr, servicename, false, target_pid); 6033 6034 } else { … … 6045 6046 if (likely(ms)) { 6046 6047 job_assumes(j, machservice_port(ms) != MACH_PORT_NULL); 6047 job_log(j, LOG_DEBUG, "%sMach service lookup: %s", flags & BOOTSTRAP_PER_PID_SERVICE ? "Per PID " : "", servicename); 6048 6049 if (unlikely(j->lastlookup == ms && j->lastlookup_gennum == ms->gen_num && !j->per_user)) { 6048 job_log(j, LOG_DEBUG, "%sMach service lookup: %s", per_pid_lookup ? "Per PID " : "", servicename); 6049 6050 if (unlikely(!per_pid_lookup && j->lastlookup == ms && j->lastlookup_gennum == ms->gen_num && !j->per_user)) { 6051 /* we need to think more about the per_pid_lookup logic before logging about repeated lookups */ 6050 6052 job_log(j, LOG_APPLEONLY, "Performance: Please fix the framework that talks to \"%s\" to cache the Mach port for service: %s", ms->job->label, servicename); 6051 6053 } … … 6057 6059 6058 6060 kr = BOOTSTRAP_SUCCESS; 6059 } else if (! (flags & BOOTSTRAP_PER_PID_SERVICE)&& (inherited_bootstrap_port != MACH_PORT_NULL)) {6061 } else if (!per_pid_lookup && (inherited_bootstrap_port != MACH_PORT_NULL)) { 6060 6062 job_log(j, LOG_DEBUG, "Mach service lookup forwarded: %s", servicename); 6061 6063 job_assumes(j, vproc_mig_look_up2_forward(inherited_bootstrap_port, srp, servicename, 0, 0) == 0); … … 6071 6073 return VPROC_ERR_TRY_PER_USER; 6072 6074 } else { 6073 job_log(j, LOG_DEBUG, "%sMach service lookup failed: %s", flags & BOOTSTRAP_PER_PID_SERVICE? "Per PID " : "", servicename);6075 job_log(j, LOG_DEBUG, "%sMach service lookup failed: %s", per_pid_lookup ? "Per PID " : "", servicename); 6074 6076 kr = BOOTSTRAP_UNKNOWN_SERVICE; 6075 6077 }

