version 1.100.4.2, 2006/03/10 13:53:24 |
version 1.100.4.3, 2006/03/12 23:33:56 |
|
|
sysctl_proc_findproc(struct proc *p, struct proc **p2, pid_t pid) |
sysctl_proc_findproc(struct proc *p, struct proc **p2, pid_t pid) |
{ |
{ |
struct proc *ptmp; |
struct proc *ptmp; |
int i, error = 0; |
int error = 0; |
|
|
if (pid == PROC_CURPROC) |
if (pid == PROC_CURPROC) |
ptmp = p; |
ptmp = p; |
Line 591 sysctl_proc_findproc(struct proc *p, str |
|
Line 591 sysctl_proc_findproc(struct proc *p, str |
|
* sub-processes started by a sgid process) |
* sub-processes started by a sgid process) |
*/ |
*/ |
else { |
else { |
int do_ngroups; |
int ismember = 0; |
|
|
do_ngroups = kauth_cred_ngroups(p->p_cred); |
if (kauth_cred_ismember_gid(p->p_cred, |
for (i = 0; i < do_ngroups; i++) { |
kauth_cred_getgid(ptmp->p_cred), &ismember) != 0 || |
if (kauth_cred_group(p->p_cred, i) == |
!ismember) { |
kauth_cred_getgid(ptmp->p_cred)) |
|
break; |
|
} |
|
if (i == kauth_cred_ngroups(p->p_cred)) |
|
error = kauth_authorize_generic(p->p_cred, |
error = kauth_authorize_generic(p->p_cred, |
KAUTH_GENERIC_ISSUSER, |
KAUTH_GENERIC_ISSUSER, &p->p_acflag); |
&p->p_acflag); |
} |
} |
} |
} |
} |
|
|