svn commit: r287343 - head/usr.bin/netstat

Xin LI delphij at FreeBSD.org
Tue Sep 1 06:05:44 UTC 2015


Author: delphij
Date: Tue Sep  1 06:05:43 2015
New Revision: 287343
URL: https://svnweb.freebsd.org/changeset/base/287343

Log:
  Failure of dropping privilege should be fatal, so test and bail out
  when setgid() fails.
  
  Reported by:	clang static analyzer
  MFC after:	2 weeks

Modified:
  head/usr.bin/netstat/main.c

Modified: head/usr.bin/netstat/main.c
==============================================================================
--- head/usr.bin/netstat/main.c	Tue Sep  1 02:42:05 2015	(r287342)
+++ head/usr.bin/netstat/main.c	Tue Sep  1 06:05:43 2015	(r287343)
@@ -498,8 +498,10 @@ main(int argc, char *argv[])
 	 * guys can't print interesting stuff from kernel memory.
 	 */
 	live = (nlistf == NULL && memf == NULL);
-	if (!live)
-		setgid(getgid());
+	if (!live) {
+		if (setgid(getgid()) != 0)
+			xo_err(-1, "setgid");
+	}
 
 	if (xflag && Tflag)
 		xo_errx(1, "-x and -T are incompatible, pick one.");
@@ -704,7 +706,8 @@ kvmd_init(void)
 		return (0);
 
 	kvmd = kvm_openfiles(nlistf, memf, NULL, O_RDONLY, errbuf);
-	setgid(getgid());
+	if (setgid(getgid()) != 0)
+		xo_err(-1, "setgid");
 
 	if (kvmd == NULL) {
 		xo_warnx("kvm not available: %s", errbuf);


More information about the svn-src-all mailing list