Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Apr 2011 13:42:04 +0000 (UTC)
From:      "Simon L. Nielsen" <simon@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r220969 - head/usr.sbin/rwhod
Message-ID:  <201104231342.p3NDg4Ld091543@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: simon
Date: Sat Apr 23 13:42:03 2011
New Revision: 220969
URL: http://svn.freebsd.org/changeset/base/220969

Log:
  Check return code of setuid(), setgid(), and setgroups() in rwhod.
  
  While they will not fail in normal circumstances, better safe than
  sorry.
  
  MFC after:	1 week

Modified:
  head/usr.sbin/rwhod/rwhod.c

Modified: head/usr.sbin/rwhod/rwhod.c
==============================================================================
--- head/usr.sbin/rwhod/rwhod.c	Sat Apr 23 13:07:35 2011	(r220968)
+++ head/usr.sbin/rwhod/rwhod.c	Sat Apr 23 13:42:03 2011	(r220969)
@@ -248,9 +248,18 @@ main(int argc, char *argv[])
 		syslog(LOG_ERR, "bind: %m");
 		exit(1);
 	}
-	setgid(unpriv_gid);
-	setgroups(1, &unpriv_gid);	/* XXX BOGUS groups[0] = egid */
-	setuid(unpriv_uid);
+	if (setgid(unpriv_gid) != 0) {
+		syslog(LOG_ERR, "setgid: %m");
+		exit(1);
+	}
+	if (setgroups(1, &unpriv_gid) != 0) { /* XXX BOGUS groups[0] = egid */
+		syslog(LOG_ERR, "setgroups: %m");
+		exit(1);
+	}
+	if (setuid(unpriv_uid) != 0) {
+		syslog(LOG_ERR, "setuid: %m");
+		exit(1);
+	}
 	if (!configure(s))
 		exit(1);
 	if (!quiet_mode) {



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