Move pledge after opendev and DIOCGPDINFO. Fixes e.g. fdisk /dev/tty.
authortb <tb@openbsd.org>
Sat, 25 Jun 2016 17:03:22 +0000 (17:03 +0000)
committertb <tb@openbsd.org>
Sat, 25 Jun 2016 17:03:22 +0000 (17:03 +0000)
This diff by deraadt was overlooked far too many times, mostly by me.
It's the original fix of the pledge disklabel breakage found by espie.

diff by deraadt; ok semarie, tb.

sbin/fdisk/fdisk.c

index b2f6989..eb0fbc8 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: fdisk.c,v 1.100 2016/03/28 16:55:09 mestre Exp $      */
+/*     $OpenBSD: fdisk.c,v 1.101 2016/06/25 17:03:22 tb Exp $  */
 
 /*
  * Copyright (c) 1997 Tobias Weingartner
@@ -85,10 +85,6 @@ main(int argc, char *argv[])
        struct dos_mbr dos_mbr;
        struct mbr mbr;
 
-       /* "proc exec" for man page display */
-       if (pledge("stdio rpath wpath disklabel proc exec", NULL) == -1)
-               err(1, "pledge");
-
        while ((ch = getopt(argc, argv, "iegpuvf:c:h:s:l:b:y")) != -1) {
                const char *errstr;
 
@@ -169,6 +165,10 @@ main(int argc, char *argv[])
        disk.name = argv[0];
        DISK_open(i_flag || u_flag || e_flag);
 
+       /* "proc exec" for man page display */
+       if (pledge("stdio rpath wpath disklabel proc exec", NULL) == -1)
+               err(1, "pledge");
+
        error = MBR_read(0, &dos_mbr);
        if (error)
                errx(1, "Can't read sector 0!");