Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/adventure/main.c bsd-games-2.17.new/adventure/main.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/adventure/main.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/adventure/main.c	2006-04-07 17:27:16.000000000 -0700
Michael Thomas cc5a4cd
@@ -34,6 +34,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1991, 1993\n\
Michael Thomas cc5a4cd
@@ -71,7 +72,10 @@
Michael Thomas cc5a4cd
 	struct text *kk;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* revoke setgid privileges from dm */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	init();		/* Initialize everything */
Michael Thomas cc5a4cd
 	signal(SIGINT, trapdel);
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/arithmetic/arithmetic.c bsd-games-2.17.new/arithmetic/arithmetic.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/arithmetic/arithmetic.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/arithmetic/arithmetic.c	2006-04-04 17:33:55.000000000 -0700
Michael Thomas cc5a4cd
@@ -32,6 +32,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1989, 1993\n\
Michael Thomas cc5a4cd
@@ -117,7 +118,10 @@
Michael Thomas cc5a4cd
 	int ch, cnt;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	while ((ch = getopt(argc, argv, "r:o:")) != -1)
Michael Thomas cc5a4cd
 		switch(ch) {
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/atc/main.c bsd-games-2.17.new/atc/main.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/atc/main.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/atc/main.c	2006-04-06 13:35:43.000000000 -0700
Michael Thomas cc5a4cd
@@ -41,6 +41,7 @@
Michael Thomas cc5a4cd
  * For more info on this and all of my stuff, mail edjames@berkeley.edu.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1990, 1993\n\
Michael Thomas cc5a4cd
@@ -77,7 +78,10 @@
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Open the score file then revoke setgid privileges */
Michael Thomas cc5a4cd
 	open_score_file();
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	start_time = seed = time(NULL);
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/backgammon/backgammon/main.c bsd-games-2.17.new/backgammon/backgammon/main.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/backgammon/backgammon/main.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/backgammon/backgammon/main.c	2006-04-06 13:39:23.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #include <termcap.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
@@ -101,7 +102,10 @@
Michael Thomas cc5a4cd
 	long    t;		/* time for random num generator */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* initialization */
Michael Thomas cc5a4cd
 	bflag = 2;		/* default no board */
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/backgammon/teachgammon/teach.c bsd-games-2.17.new/backgammon/teachgammon/teach.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/backgammon/teachgammon/teach.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/backgammon/teachgammon/teach.c	2006-04-06 13:39:44.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #include <termcap.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
@@ -68,7 +69,10 @@
Michael Thomas cc5a4cd
 	int     i;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	signal(SIGINT, getout);
Michael Thomas cc5a4cd
 	if (tcgetattr(0, &old) == -1)	/* get old tty mode */
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/banner/banner.c bsd-games-2.17.new/banner/banner.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/banner/banner.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/banner/banner.c	2006-04-04 17:42:03.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1980, 1993, 1994\n\
Michael Thomas cc5a4cd
@@ -1036,7 +1037,10 @@
Michael Thomas cc5a4cd
 	int ch;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	while ((ch = getopt(argc, argv, "w:td")) != -1)
Michael Thomas cc5a4cd
 		switch (ch) {
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/battlestar/battlestar.c bsd-games-2.17.new/battlestar/battlestar.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/battlestar/battlestar.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/battlestar/battlestar.c	2006-04-06 13:33:22.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1983, 1993\n\
Michael Thomas cc5a4cd
@@ -64,7 +65,10 @@
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Open the score file then revoke setgid privileges */
Michael Thomas cc5a4cd
 	open_score_file();
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	if (argc < 2)
Michael Thomas cc5a4cd
 		initialize(NULL);
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/bcd/bcd.c bsd-games-2.17.new/bcd/bcd.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/bcd/bcd.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/bcd/bcd.c	2006-04-04 17:34:57.000000000 -0700
Michael Thomas cc5a4cd
@@ -32,6 +32,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1989, 1993\n\
Michael Thomas cc5a4cd
@@ -135,7 +136,10 @@
Michael Thomas cc5a4cd
 	char cardline[80];
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/*
Michael Thomas cc5a4cd
 	 * The original bcd prompts with a "%" when reading from stdin,
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/boggle/boggle/bog.c bsd-games-2.17.new/boggle/boggle/bog.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/boggle/boggle/bog.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/boggle/boggle/bog.c	2006-04-04 17:41:17.000000000 -0700
Michael Thomas cc5a4cd
@@ -32,6 +32,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1993\n\
Michael Thomas cc5a4cd
@@ -131,7 +132,10 @@
Michael Thomas cc5a4cd
 	char *bspec, *p;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	seed = 0;
Michael Thomas cc5a4cd
 	batch = debug = reuse = selfuse = sflag = 0;
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/caesar/caesar.c bsd-games-2.17.new/caesar/caesar.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/caesar/caesar.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/caesar/caesar.c	2006-04-04 17:31:41.000000000 -0700
Michael Thomas cc5a4cd
@@ -37,6 +37,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1989, 1993\n\
Michael Thomas cc5a4cd
@@ -90,7 +91,10 @@
Michael Thomas cc5a4cd
 	int obs[26], try, winner;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	winnerdot = 0;
Michael Thomas cc5a4cd
 	if (argc > 1)
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/canfield/canfield/canfield.c bsd-games-2.17.new/canfield/canfield/canfield.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/canfield/canfield/canfield.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/canfield/canfield/canfield.c	2006-04-06 13:31:18.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1980, 1993\n\
Michael Thomas cc5a4cd
@@ -1666,6 +1667,20 @@
Michael Thomas cc5a4cd
 }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 /*
Michael Thomas cc5a4cd
+ * Open the high score file and then drop setgid.
Michael Thomas cc5a4cd
+ */
Michael Thomas cc5a4cd
+void
Michael Thomas cc5a4cd
+open_score() {
Michael Thomas cc5a4cd
+	dbfd = open(_PATH_SCORE, O_RDWR);
Michael Thomas cc5a4cd
+
Michael Thomas cc5a4cd
+	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
+}
Michael Thomas cc5a4cd
+
Michael Thomas cc5a4cd
+/*
Michael Thomas cc5a4cd
  * procedure to initialize the game
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 void
Michael Thomas cc5a4cd
@@ -1679,10 +1694,6 @@
Michael Thomas cc5a4cd
 	uid = getuid();
Michael Thomas cc5a4cd
 	if (uid < 0)
Michael Thomas cc5a4cd
 		uid = 0;
Michael Thomas cc5a4cd
-	dbfd = open(_PATH_SCORE, O_RDWR);
Michael Thomas cc5a4cd
-
Michael Thomas cc5a4cd
-	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	if (dbfd < 0)
Michael Thomas cc5a4cd
 		return;
Michael Thomas cc5a4cd
@@ -1797,6 +1808,8 @@
Michael Thomas cc5a4cd
 		exit(0);
Michael Thomas cc5a4cd
 	}
Michael Thomas cc5a4cd
 #endif
Michael Thomas cc5a4cd
+        open_score();
Michael Thomas cc5a4cd
+
Michael Thomas cc5a4cd
 	signal(SIGINT, askquit);
Michael Thomas cc5a4cd
 	signal(SIGHUP, cleanup);
Michael Thomas cc5a4cd
 	signal(SIGTERM, cleanup);
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/canfield/cfscores/cfscores.c bsd-games-2.17.new/canfield/cfscores/cfscores.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/canfield/cfscores/cfscores.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/canfield/cfscores/cfscores.c	2006-04-06 13:14:59.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1983, 1993\n\
Michael Thomas cc5a4cd
@@ -78,7 +79,10 @@
Michael Thomas cc5a4cd
 	int uid;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	if (argc > 2) {
Michael Thomas cc5a4cd
 		printf("Usage: cfscores [user]\n");
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/cribbage/crib.c bsd-games-2.17.new/cribbage/crib.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/cribbage/crib.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/cribbage/crib.c	2006-04-04 18:30:44.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1980, 1993\n\
Michael Thomas cc5a4cd
@@ -76,7 +77,10 @@
Michael Thomas cc5a4cd
 		exit(1);
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Set close-on-exec flag on log file */
Michael Thomas cc5a4cd
 	if (f != NULL) {
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/cribbage/instr.c bsd-games-2.17.new/cribbage/instr.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/cribbage/instr.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/cribbage/instr.c	2006-04-04 17:30:46.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 #if 0
Michael Thomas cc5a4cd
@@ -71,6 +72,11 @@
Michael Thomas cc5a4cd
 		 * for mailx and man.  We only use a pager if stdout is
Michael Thomas cc5a4cd
 		 * a terminal, and we pass the file on stdin to sh -c pager.
Michael Thomas cc5a4cd
 		 */
Michael Thomas cc5a4cd
+		if (setresgid(-1, getgid(), getgid()) != 0) {
Michael Thomas cc5a4cd
+		    perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+		    exit(1);
Michael Thomas cc5a4cd
+		}
Michael Thomas cc5a4cd
+
Michael Thomas cc5a4cd
 		if (!isatty(1))
Michael Thomas cc5a4cd
 			path = "cat";
Michael Thomas cc5a4cd
 		else {
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/factor/factor.c bsd-games-2.17.new/factor/factor.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/factor/factor.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/factor/factor.c	2006-04-07 17:26:49.000000000 -0700
Michael Thomas cc5a4cd
@@ -32,6 +32,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1989, 1993\n\
Michael Thomas cc5a4cd
@@ -138,6 +139,12 @@
Michael Thomas cc5a4cd
 	int ch;
Michael Thomas cc5a4cd
 	char *p, buf[LINE_MAX];		/* > max number of digits. */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
+
Michael Thomas cc5a4cd
 #ifdef HAVE_OPENSSL 
Michael Thomas cc5a4cd
 	ctx = BN_CTX_new();
Michael Thomas cc5a4cd
 #endif
Michael Thomas cc5a4cd
@@ -145,9 +152,6 @@
Michael Thomas cc5a4cd
 	if (val == NULL)
Michael Thomas cc5a4cd
 		errx(1, "can't initialise bignum");
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
-	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
-
Michael Thomas cc5a4cd
 	while ((ch = getopt(argc, argv, "")) != -1)
Michael Thomas cc5a4cd
 		switch (ch) {
Michael Thomas cc5a4cd
 		case '?':
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/fish/fish.c bsd-games-2.17.new/fish/fish.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/fish/fish.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/fish/fish.c	2006-04-04 17:34:45.000000000 -0700
Michael Thomas cc5a4cd
@@ -32,6 +32,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1990, 1993\n\
Michael Thomas cc5a4cd
@@ -103,7 +104,10 @@
Michael Thomas cc5a4cd
 	int ch, move;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	while ((ch = getopt(argc, argv, "p")) != -1)
Michael Thomas cc5a4cd
 		switch(ch) {
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/fortune/fortune/fortune.c bsd-games-2.17.new/fortune/fortune/fortune.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/fortune/fortune/fortune.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/fortune/fortune/fortune.c	2006-04-07 17:28:14.000000000 -0700
Michael Thomas cc5a4cd
@@ -32,6 +32,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1986, 1993\n\
Michael Thomas cc5a4cd
@@ -227,7 +228,10 @@
Michael Thomas cc5a4cd
 #endif	/* OK_TO_WRITE_DISK */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	getargs(ac, av);
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/gomoku/main.c bsd-games-2.17.new/gomoku/main.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/gomoku/main.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/gomoku/main.c	2006-04-04 17:35:38.000000000 -0700
Michael Thomas cc5a4cd
@@ -32,6 +32,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1994\n\
Michael Thomas cc5a4cd
@@ -95,7 +96,10 @@
Michael Thomas cc5a4cd
 	};
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	color = curmove = 0;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/hangman/main.c bsd-games-2.17.new/hangman/main.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/hangman/main.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/hangman/main.c	2006-04-04 17:35:55.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1983, 1993\n\
Michael Thomas cc5a4cd
@@ -57,7 +58,10 @@
Michael Thomas cc5a4cd
 	int ch;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	while ((ch = getopt(argc, argv, "d:m:")) != -1) {
Michael Thomas cc5a4cd
 		switch (ch) {
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/hunt/hunt/hunt.c bsd-games-2.17.new/hunt/hunt/hunt.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/hunt/hunt/hunt.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/hunt/hunt/hunt.c	2006-04-04 17:36:13.000000000 -0700
Michael Thomas cc5a4cd
@@ -30,6 +30,7 @@
Michael Thomas cc5a4cd
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __RCSID("$NetBSD: hunt.c,v 1.23 2004/11/05 21:30:32 dsl Exp $");
Michael Thomas cc5a4cd
@@ -138,7 +139,10 @@
Michael Thomas cc5a4cd
 	long		enter_status;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	enter_status = env_init((long) Q_CLOAK);
Michael Thomas cc5a4cd
 	while ((c = getopt(ac, av, "Sbcfh:l:mn:op:qst:w:")) != -1) {
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/mille/mille.c bsd-games-2.17.new/mille/mille.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/mille/mille.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/mille/mille.c	2006-04-04 17:36:28.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1982, 1993\n\
Michael Thomas cc5a4cd
@@ -58,7 +59,10 @@
Michael Thomas cc5a4cd
 	bool	restore;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	if (strcmp(av[0], "a.out") == 0) {
Michael Thomas cc5a4cd
 		outf = fopen("q", "w");
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/monop/monop.c bsd-games-2.17.new/monop/monop.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/monop/monop.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/monop/monop.c	2006-04-04 17:36:51.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1980, 1993\n\
Michael Thomas cc5a4cd
@@ -65,7 +66,10 @@
Michael Thomas cc5a4cd
 	char *av[];
Michael Thomas cc5a4cd
 {
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	srand(getpid());
Michael Thomas cc5a4cd
 	heapstart = sbrk(0);
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/morse/morse.c bsd-games-2.17.new/morse/morse.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/morse/morse.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/morse/morse.c	2006-04-04 17:37:05.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1988, 1993\n\
Michael Thomas cc5a4cd
@@ -127,7 +128,10 @@
Michael Thomas cc5a4cd
 	char *p;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	while ((ch = getopt(argc, argv, "ds")) != -1)
Michael Thomas cc5a4cd
 		switch((char)ch) {
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/number/number.c bsd-games-2.17.new/number/number.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/number/number.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/number/number.c	2006-04-07 17:30:32.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1988, 1993, 1994\n\
Michael Thomas cc5a4cd
@@ -94,7 +95,10 @@
Michael Thomas cc5a4cd
 	char line[256];
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	lflag = 0;
Michael Thomas cc5a4cd
 	while ((ch = getopt(argc, argv, "l")) != -1)
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/pig/pig.c bsd-games-2.17.new/pig/pig.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/pig/pig.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/pig/pig.c	2006-04-04 17:37:19.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1992, 1993\n\
Michael Thomas cc5a4cd
@@ -66,7 +67,10 @@
Michael Thomas cc5a4cd
 	char buf[1024];
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	while ((ch = getopt(argc, argv, "")) != -1)
Michael Thomas cc5a4cd
 		switch(ch) {
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/pom/pom.c bsd-games-2.17.new/pom/pom.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/pom/pom.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/pom/pom.c	2006-04-04 17:37:30.000000000 -0700
Michael Thomas cc5a4cd
@@ -31,6 +31,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1989, 1993\n\
Michael Thomas cc5a4cd
@@ -101,7 +102,10 @@
Michael Thomas cc5a4cd
 	char buf[1024];
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	if (time(&now) == (time_t)-1)
Michael Thomas cc5a4cd
 		err(1, "time");
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/ppt/ppt.c bsd-games-2.17.new/ppt/ppt.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/ppt/ppt.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/ppt/ppt.c	2006-04-04 17:37:39.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1988, 1993\n\
Michael Thomas cc5a4cd
@@ -73,7 +74,10 @@
Michael Thomas cc5a4cd
 	int c, start, neednl, dflag;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	dflag = 0;
Michael Thomas cc5a4cd
 	while ((c = getopt(argc, argv, "dh")) != -1)
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/primes/primes.c bsd-games-2.17.new/primes/primes.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/primes/primes.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/primes/primes.c	2006-04-07 17:29:06.000000000 -0700
Michael Thomas cc5a4cd
@@ -32,6 +32,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1989, 1993\n\
Michael Thomas cc5a4cd
@@ -119,7 +120,10 @@
Michael Thomas cc5a4cd
 	char *p;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	while ((ch = getopt(argc, argv, "")) != -1)
Michael Thomas cc5a4cd
 		switch (ch) {
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/quiz/quiz.c bsd-games-2.17.new/quiz/quiz.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/quiz/quiz.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/quiz/quiz.c	2006-04-04 17:37:56.000000000 -0700
Michael Thomas cc5a4cd
@@ -33,6 +33,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1991, 1993\n\
Michael Thomas cc5a4cd
@@ -85,7 +86,10 @@
Michael Thomas cc5a4cd
 	const char *indexfile;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	indexfile = _PATH_QUIZIDX;
Michael Thomas cc5a4cd
 	while ((ch = getopt(argc, argv, "i:t")) != -1)
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/rain/rain.c bsd-games-2.17.new/rain/rain.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/rain/rain.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/rain/rain.c	2006-04-04 17:38:07.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1980, 1993\n\
Michael Thomas cc5a4cd
@@ -77,7 +78,10 @@
Michael Thomas cc5a4cd
 	int xpos[5], ypos[5];
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	while ((ch = getopt(argc, argv, "d:")) != -1)
Michael Thomas cc5a4cd
 		switch (ch) {
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/random/random.c bsd-games-2.17.new/random/random.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/random/random.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/random/random.c	2006-04-04 17:38:19.000000000 -0700
Michael Thomas cc5a4cd
@@ -32,6 +32,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1994\n\
Michael Thomas cc5a4cd
@@ -73,7 +74,10 @@
Michael Thomas cc5a4cd
 	char *ep;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	denom = 0;
Michael Thomas cc5a4cd
 	random_exit = unbuffer_output = 0;
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/robots/main.c bsd-games-2.17.new/robots/main.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/robots/main.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/robots/main.c	2006-04-06 13:35:58.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1980, 1993\n\
Michael Thomas cc5a4cd
@@ -68,7 +69,10 @@
Michael Thomas cc5a4cd
 		exit(1);
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	show_only = FALSE;
Michael Thomas cc5a4cd
 	Num_games = 1;
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/snake/snake/snake.c bsd-games-2.17.new/snake/snake/snake.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/snake/snake/snake.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/snake/snake/snake.c	2006-04-06 13:32:03.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1980, 1993\n\
Michael Thomas cc5a4cd
@@ -159,7 +160,10 @@
Michael Thomas cc5a4cd
 		warn("fopen %s", _PATH_LOGFILE);
Michael Thomas cc5a4cd
 		sleep(2);
Michael Thomas cc5a4cd
 	}
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	(void) time(&tv;;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/snake/snscore/snscore.c bsd-games-2.17.new/snake/snscore/snscore.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/snake/snscore/snscore.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/snake/snscore/snscore.c	2006-04-06 13:15:19.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1980, 1993\n\
Michael Thomas cc5a4cd
@@ -75,7 +76,10 @@
Michael Thomas cc5a4cd
 	struct	passwd	*p;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	fd = fopen(recfile, "r");
Michael Thomas cc5a4cd
 	if (fd == NULL)
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/trek/main.c bsd-games-2.17.new/trek/main.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/trek/main.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/trek/main.c	2006-04-04 17:38:38.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1980, 1993\n\
Michael Thomas cc5a4cd
@@ -173,7 +174,10 @@
Michael Thomas cc5a4cd
 	struct	termios		argp;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	av = argv;
Michael Thomas cc5a4cd
 	ac = argc;
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/worm/worm.c bsd-games-2.17.new/worm/worm.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/worm/worm.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/worm/worm.c	2006-04-07 17:28:35.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1980, 1993\n\
Michael Thomas cc5a4cd
@@ -99,7 +100,10 @@
Michael Thomas cc5a4cd
 {
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	setbuf(stdout, outbuf);
Michael Thomas cc5a4cd
 	srand(getpid());
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/worms/worms.c bsd-games-2.17.new/worms/worms.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/worms/worms.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/worms/worms.c	2006-04-04 17:41:34.000000000 -0700
Michael Thomas cc5a4cd
@@ -29,6 +29,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE /* this must be done before the first include of unistd.h */
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1980, 1993\n\
Michael Thomas cc5a4cd
@@ -199,7 +200,10 @@
Michael Thomas cc5a4cd
 	unsigned int delay = 0;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	mp = NULL;
Michael Thomas cc5a4cd
 	length = 16;
Michael Thomas cc5a4cd
diff -Naur --exclude '*.swp' bsd-games-2.17/wump/wump.c bsd-games-2.17.new/wump/wump.c
Michael Thomas cc5a4cd
--- bsd-games-2.17/wump/wump.c	2006-04-14 15:55:41.000000000 -0700
Michael Thomas cc5a4cd
+++ bsd-games-2.17.new/wump/wump.c	2006-04-04 17:41:55.000000000 -0700
Michael Thomas cc5a4cd
@@ -33,6 +33,7 @@
Michael Thomas cc5a4cd
  * SUCH DAMAGE.
Michael Thomas cc5a4cd
  */
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
+#define _GNU_SOURCE
Michael Thomas cc5a4cd
 #include <sys/cdefs.h>
Michael Thomas cc5a4cd
 #ifndef lint
Michael Thomas cc5a4cd
 __COPYRIGHT("@(#) Copyright (c) 1989, 1993\n\
Michael Thomas cc5a4cd
@@ -145,7 +146,10 @@
Michael Thomas cc5a4cd
 	int c;
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 	/* Revoke setgid privileges */
Michael Thomas cc5a4cd
-	setregid(getgid(), getgid());
Michael Thomas cc5a4cd
+        if (setresgid(-1, getgid(), getgid()) == -1) {
Michael Thomas cc5a4cd
+            perror("Could not drop setgid privileges.  Aborting.");
Michael Thomas cc5a4cd
+            exit(1);
Michael Thomas cc5a4cd
+        }
Michael Thomas cc5a4cd
 
Michael Thomas cc5a4cd
 #ifdef DEBUG
Michael Thomas cc5a4cd
 	while ((c = getopt(argc, argv, "a:b:hp:r:t:d")) != -1)