tame "stdio". It would take some doing for this to contain a bug, but
authorderaadt <deraadt@openbsd.org>
Wed, 7 Oct 2015 06:39:16 +0000 (06:39 +0000)
committerderaadt <deraadt@openbsd.org>
Wed, 7 Oct 2015 06:39:16 +0000 (06:39 +0000)
just in case -- now it can barely do anything when it goes wrong.

usr.bin/getopt/getopt.c

index f0c3869..b0781e6 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: getopt.c,v 1.8 2009/10/27 23:59:38 deraadt Exp $      */
+/*     $OpenBSD: getopt.c,v 1.9 2015/10/07 06:39:16 deraadt Exp $      */
 
 /*
  * This material, written by Henry Spencer, was released by him
@@ -8,6 +8,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
+#include <err.h>
 
 int
 main(int argc, char *argv[])
@@ -17,6 +18,9 @@ main(int argc, char *argv[])
        int c;
        int status = 0;
 
+       if (tame("stdio", NULL) == -1)
+               err(1, "tame");
+
        optind = 2;     /* Past the program name and the option letters. */
        while ((c = getopt(argc, argv, argv[1])) != -1)
                switch (c) {