NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: bin/54971: sockstat command output incorrect for normal user

The following reply was made to PR bin/54971; it has been noted by GNATS.

From: scole_mail <>
Cc: Christos Zoulas <>
Subject: Re: bin/54971: sockstat command output incorrect for normal user
Date: Tue, 25 Aug 2020 14:03:48 -0700

 One last item hopefully... I was looking over the *stat programs more
 closely and they all seem to follow some variation of this paradigm with
 setgid/setegid.  I tested it and it worked fine.
 If it looks correct, I can check it in or feel free if you'd like to.
 Thanks very much
 Summary of changes:  (A/? =3D New, R/D =3D Removed, M =3D Modified)
 M sockstat.c
 Apply patch with "cd .../src/usr.bin/sockstat ; patch -s -p0 < .../patchfi=
 Index: sockstat.c
 RCS file: /cvsroot/src/usr.bin/sockstat/sockstat.c,v
 retrieving revision 1.22
 diff -b -u -r1.22 sockstat.c
 =2D-- sockstat.c	25 Aug 2020 14:05:17 -0000	1.22
 +++ sockstat.c	25 Aug 2020 20:47:50 -0000
 @@ -121,6 +121,8 @@
  	int ch;
  	size_t i;
  	struct kinfo_proc2 p;
 +	gid_t egid =3D getegid();
 +	setegid(getgid());
  	pf_list =3D only =3D 0;
 @@ -180,10 +182,13 @@
  		err(1, "init");
  	/* Not used, but we set the PK_KMEM flag like this */
 +	setegid(egid);
  	int fd =3D open("/dev/mem", O_RDONLY);
  	if (fd =3D=3D -1)
  		err(EXIT_FAILURE, "Can't open `/dev/mem'");
 +	setgid(getgid());
  	if ((portmap !=3D NULL) && (pf_list =3D=3D 0)) {
  		pf_list =3D PF_LIST_INET;
  #ifdef INET6

Home | Main Index | Thread Index | Old Index