diff options
| author | Brooks Davis <brooks@FreeBSD.org> | 2009-07-24 15:03:10 +0000 |
|---|---|---|
| committer | Brooks Davis <brooks@FreeBSD.org> | 2009-07-24 15:03:10 +0000 |
| commit | 1b5768be712d582dbabafb17c282ec642bf8065c (patch) | |
| tree | a288a45405a0766b2d46ab342c920d88b33aeff5 /lib | |
| parent | 013818111a1477055223a69d538ebcd1c23b955e (diff) | |
Notes
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/libkvm/kvm_proc.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/libkvm/kvm_proc.c b/lib/libkvm/kvm_proc.c index d765b6e21ca2..7fb85a4a2613 100644 --- a/lib/libkvm/kvm_proc.c +++ b/lib/libkvm/kvm_proc.c @@ -145,8 +145,14 @@ kvm_proclist(kd, what, arg, p, bp, maxcnt) kp->ki_svuid = ucred.cr_svuid; kp->ki_rgid = ucred.cr_rgid; kp->ki_svgid = ucred.cr_svgid; - kp->ki_ngroups = ucred.cr_ngroups; - kp->ki_groups = ucred.cr_groups; + kp->ki_cr_flags = ucred.cr_flags; + if (ucred.cr_ngroups > KI_NGROUPS) { + kp->ki_ngroups = KI_NGROUPS; + kp->ki_cr_flags |= KI_CRF_GRP_OVERFLOW; + } + kp->ki_ngroups = ucred.cr_ngroups; + bcopy(ucred.cr_groups, kp->ki_groups, + kp->ki_ngroups * sizeof(gid_t)); kp->ki_uid = ucred.cr_uid; if (ucred.cr_prison != NULL) { if (KREAD(kd, (u_long)ucred.cr_prison, &pr)) { |
