Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 4 Sep 2009 17:14:32 -0500
From:      Brooks Davis <brooks@FreeBSD.org>
To:        Bruce Cran <bruce@cran.org.uk>
Cc:        svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org
Subject:   Re: svn commit: r195843 - in head: lib/libkvm sys/kern sys/sys
Message-ID:  <20090904221432.GC82231@lor.one-eyed-alien.net>
In-Reply-To: <20090829201228.00005860@unknown>
References:  <200907241503.n6OF3ATP013228@svn.freebsd.org> <20090829201228.00005860@unknown>

next in thread | previous in thread | raw e-mail | index | archive | help

--pAwQNkOnpTn9IO2O
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sat, Aug 29, 2009 at 08:12:28PM +0100, Bruce Cran wrote:
> On Fri, 24 Jul 2009 15:03:10 +0000 (UTC)
> Brooks Davis <brooks@FreeBSD.org> wrote:
>=20
> > Author: brooks
> > Date: Fri Jul 24 15:03:10 2009
> > New Revision: 195843
> > URL: http://svn.freebsd.org/changeset/base/195843
> >=20
> > Log:
> >   Revert the changes to struct kinfo_proc in r194498.  Instead, fill
> >   in up to 16 (KI_NGROUPS) values and steal a bit from ki_cr_flags
> >   (all bits currently unused) to indicate overflow with the new flag
> >   KI_CRF_GRP_OVERFLOW.
> >  =20
> >   This fixes procstat -s.
> >  =20
> >   Approved by: re (kib)
>=20
> Hi Brooks,
>=20
> This checkin appears to have broken crash dump support: the bcopy in
> kvm_proc.c crashes when running "ps -ax -M /var/crash/vmcore.x
> -N /boot/kernel/kernel", apparently because ucred.cr_groups isn't valid.
> Does it need converted using KVM_READ first?

Sorry for the delay, I believe you are correct we need to use kvm_read
here instead of the bcopy.  Do you still have a core handy you can test
a patch against?  The following should do it.

-- Brooks

Index: lib/libkvm/kvm_proc.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- lib/libkvm/kvm_proc.c	(revision 196736)
+++ lib/libkvm/kvm_proc.c	(working copy)
@@ -151,7 +151,7 @@
 				kp->ki_cr_flags |=3D KI_CRF_GRP_OVERFLOW;
 			}
 				kp->ki_ngroups =3D 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 =3D ucred.cr_uid;
 			if (ucred.cr_prison !=3D NULL) {

--pAwQNkOnpTn9IO2O
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (FreeBSD)

iD8DBQFKoZFIXY6L6fI4GtQRAmtzAJ0W2fEL0TMPA4pKQAgDTlqxNxsXFwCfcSCp
cYjMVqpg0YNDcMZxkINYOZc=
=3Uaj
-----END PGP SIGNATURE-----

--pAwQNkOnpTn9IO2O--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090904221432.GC82231>