Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 May 2001 00:19:45 -0700
From:      Kris Kennaway <kris@obsecurity.org>
To:        audit@FreeBSD.org
Subject:   fstat patches
Message-ID:  <20010508001945.A86617@xor.obsecurity.org>

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

[-- Attachment #1 --]
These are taken from OpenBSD.  Please review: I don't know if the
setegid() changes actually serve a purpose..can anyone explain it to
me?

Kris

Index: fstat.c
===================================================================
RCS file: /mnt/ncvs/src/usr.bin/fstat/fstat.c,v
retrieving revision 1.29
diff -u -r1.29 fstat.c
--- fstat.c	2001/05/01 08:46:00	1.29
+++ fstat.c	2001/05/08 07:16:33
@@ -231,11 +231,17 @@
 	 * Discard setgid privileges if not the running kernel so that bad
 	 * guys can't print interesting stuff from kernel memory.
 	 */
-	if (nlistf != NULL || memf != NULL)
+	if (nlistf != NULL || memf != NULL) {
+		setegid(getgid());
 		setgid(getgid());
+	}
 
 	if ((kd = kvm_openfiles(nlistf, memf, NULL, O_RDONLY, buf)) == NULL)
 		errx(1, "%s", buf);
+
+	setegid(getgid());
+	setgid(getgid());
+
 #ifdef notdef
 	if (kvm_nlist(kd, nl) != 0)
 		errx(1, "no namelist: %s", kvm_geterr(kd));
@@ -479,7 +485,7 @@
 			break;
 			
 		default: {
-			static char unknown[10];
+			static char unknown[20];
 			sprintf(badtype = unknown, "?(%x)", vn.v_tag);
 			break;;
 		}
@@ -697,7 +703,7 @@
 	struct inpcb	inpcb;
 	struct unpcb	unpcb;
 	int len;
-	char dname[32], *strcpy();
+	char dname[32];
 
 	PREFIX(i);
 
@@ -722,7 +728,7 @@
 	}
 
 	if ((len = kvm_read(kd, (u_long)dom.dom_name, dname,
-	    sizeof(dname) - 1)) < 0) {
+	    sizeof(dname) - 1)) != sizeof(dname) -1) {
 		dprintf(stderr, "can't read domain name at %p\n",
 		    (void *)dom.dom_name);
 		dname[0] = '\0';

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.5 (FreeBSD)
Comment: For info see http://www.gnupg.org

iD8DBQE6954QWry0BWjoQKURAsnRAJoCfTy2j6RqQPWkf12ex8TANtTmKwCeMm31
kLEReyjFUAKFIvxXdFatMRs=
=kSJz
-----END PGP SIGNATURE-----

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