diff options
author | brooks <brooks@FreeBSD.org> | 2009-09-08 19:37:59 +0000 |
---|---|---|
committer | brooks <brooks@FreeBSD.org> | 2009-09-08 19:37:59 +0000 |
commit | 02af361e1ca4fb3d3477083783a2ba90b666b126 (patch) | |
tree | 8617996dd3ebfbc658d48eec0bd1b70222f40af3 /lib/libkvm/kvm_proc.c | |
parent | a7104567d1b1543ad709fb587f326e65d5efc1e6 (diff) | |
download | FreeBSD-src-02af361e1ca4fb3d3477083783a2ba90b666b126.zip FreeBSD-src-02af361e1ca4fb3d3477083783a2ba90b666b126.tar.gz |
cr_groups is no longer embedded in struct ucred and is instead stored
in a seperate array. As such we need to use kvm_read rather than bcopy
to populate the ki_groups field.
This fixes a crash when running ps -ax on a coredump.
Reported by: brucec
Tested by: brucec
MFC after: 3 days
Diffstat (limited to 'lib/libkvm/kvm_proc.c')
-rw-r--r-- | lib/libkvm/kvm_proc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/libkvm/kvm_proc.c b/lib/libkvm/kvm_proc.c index 7fb85a4..071f859 100644 --- a/lib/libkvm/kvm_proc.c +++ b/lib/libkvm/kvm_proc.c @@ -151,7 +151,7 @@ kvm_proclist(kd, what, arg, p, bp, maxcnt) kp->ki_cr_flags |= KI_CRF_GRP_OVERFLOW; } kp->ki_ngroups = ucred.cr_ngroups; - bcopy(ucred.cr_groups, kp->ki_groups, + kvm_read(kd, (u_long)ucred.cr_groups, kp->ki_groups, kp->ki_ngroups * sizeof(gid_t)); kp->ki_uid = ucred.cr_uid; if (ucred.cr_prison != NULL) { |