Changeset 23513
- Timestamp:
- 02/06/08 18:24:32 (10 months ago)
- Files:
-
- 1 modified
-
trunk/launchd/src/launchd_core_logic.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/launchd/src/launchd_core_logic.c
r23495 r23513 462 462 463 463 /* miscellaneous file local functions */ 464 static size_t get_kern_max_proc(void); 464 465 static void ensure_root_bkgd_setup(void); 465 466 static int dir_has_files(job_t j, const char *path); … … 2105 2106 { 2106 2107 int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PGRP, j->p }; 2107 size_t i, kp_cnt, len = 10*1024*1024;2108 size_t i, kp_cnt, len = sizeof(struct kinfo_proc) * get_kern_max_proc(); 2108 2109 struct kinfo_proc *kp; 2110 2111 #if TARGET_OS_EMBEDDED 2112 if (!do_apple_internal_logging) { 2113 return; 2114 } 2115 #endif 2109 2116 2110 2117 runtime_ktrace(RTKT_LAUNCHD_FINDING_STRAY_PG, j->p, 0, 0); … … 2418 2425 #endif 2419 2426 int mib_sz = sizeof(mib) / sizeof(mib[0]); 2420 size_t i, kp_cnt, len = 10*1024*1024;2427 size_t i, kp_cnt, len = sizeof(struct kinfo_proc) * get_kern_max_proc(); 2421 2428 struct kinfo_proc *kp; 2422 2429 … … 2959 2966 { 2960 2967 int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL }; 2961 size_t i, kp_cnt, len = 10*1024*1024;2962 struct kinfo_proc *kp = malloc(len);2968 size_t i, kp_cnt, len = sizeof(struct kinfo_proc) * get_kern_max_proc(); 2969 struct kinfo_proc *kp; 2963 2970 uid_t u = j->mach_uid; 2971 2972 #if TARGET_OS_EMBEDDED 2973 if (!do_apple_internal_logging) { 2974 return; 2975 } 2976 #endif 2977 kp = malloc(len); 2964 2978 2965 2979 if (!job_assumes(j, kp != NULL)) { … … 4465 4479 { 4466 4480 int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL }; 4467 size_t i, kp_cnt = 0, kp_skipped = 0, len = 10*1024*1024;4481 size_t i, kp_cnt = 0, kp_skipped = 0, len = sizeof(struct kinfo_proc) * get_kern_max_proc(); 4468 4482 struct kinfo_proc *kp; 4483 4484 #if TARGET_OS_EMBEDDED 4485 if (!do_apple_internal_logging) { 4486 return; 4487 } 4488 #endif 4469 4489 4470 4490 if (likely(jm->parentmgr || !pid1_magic)) { … … 6966 6986 } while ((returned == (sizeof(buf) / sizeof(buf[0]))) && (found > 0)); 6967 6987 } 6988 6989 size_t 6990 get_kern_max_proc(void) 6991 { 6992 int mib[] = { CTL_KERN, KERN_MAXPROC }; 6993 int max = 100; 6994 size_t max_sz = sizeof(max); 6995 6996 launchd_assumes(sysctl(mib, 2, &max, &max_sz, NULL, 0) != -1); 6997 6998 return max; 6999 }

