more of the same:

$ ktrace ncheck_ffs /dev/tty
Abort trap (core dumped)
$ kdump | tail
 65350 ncheck_ffs CALL  open(0xd76b761d460,0<O_RDONLY>)
 65350 ncheck_ffs NAMI  "/dev/tty"
 65350 ncheck_ffs RET   open 3
 65350 ncheck_ffs CALL  fstat(3,0x7f7ffffef100)
 65350 ncheck_ffs STRU  struct stat { dev=1040, ino=1280, mode=crw-rw-rw- , 
nlink=1, uid=0<"root">, gid=0<"wheel">, rdev=256, atime=1464476868<"May 29 
01:07:48 2016">.691119578, mtime=1464466717<"May 28 22:18:37 2016">.835647187, 
ctime=1464466717<"May 28 22:18:37 2016">.835647187, size=0, blocks=0, 
blksize=65536, flags=0x0, gen=0x0 }
 65350 ncheck_ffs RET   fstat 0
 65350 ncheck_ffs CALL  ioctl(3,DIOCGDINFO,0xd76b7623100)
 65350 ncheck_ffs PLDG  ioctl, "ioctl", errno 1 Operation not permitted
 65350 ncheck_ffs PSIG  SIGABRT SIG_DFL
 65350 ncheck_ffs NAMI  "ncheck_ffs.core"

remove the early pledge and leave the pledge "stdio" right after
DIOCGDINFO.

Index: ncheck_ffs.c
===================================================================
RCS file: /var/cvs/src/sbin/ncheck_ffs/ncheck_ffs.c,v
retrieving revision 1.52
diff -u -p -r1.52 ncheck_ffs.c
--- ncheck_ffs.c        23 Nov 2015 19:19:30 -0000      1.52
+++ ncheck_ffs.c        28 May 2016 23:16:37 -0000
@@ -510,9 +510,6 @@ main(int argc, char *argv[])
        char *ep;
        int c, i;
 
-       if (pledge("stdio rpath disklabel", NULL) == -1)
-               err(1, "pledge");
-
        while ((c = getopt(argc, argv, "af:i:ms")) != -1)
                switch (c) {
                case 'a':

Reply via email to