On Sat, May 28, 2016 at 11:45:38AM -0600, Bob Beck wrote:
> Another ok for this
>
> Although I am kind of wondering outloud is pledge disklabel is needed as such
> or could be refined.. should we simply always read the disklabel outside of
> pledge, and only need this to write one?
actually that thought Is stupid.. I'm thinking this because of the hack of
hoisting all this.
which wouldn't be needed if we can fix opendev() to not be so dumb..
>
> On Sat, May 28, 2016 at 07:33:25PM +0200, Theo Buehler wrote:
> > Another low hanging fruit of the same sort:
> >
> > $ ktrace fsck_msdofs /dev/tty
> > Abort trap (core dumped)
> > $ kdump | tail
> > 4663 fsck_msdos RET read 612/0x264
> > 4663 fsck_msdos CALL read(3,0x304fdfe4000,0x4000)
> > 4663 fsck_msdos RET read 0
> > 4663 fsck_msdos CALL open(0x3029c121880,0x2<O_RDWR>)
> > 4663 fsck_msdos NAMI "/dev/tty"
> > 4663 fsck_msdos RET open 4
> > 4663 fsck_msdos CALL ioctl(4,DIOCGPDINFO,0x7f7ffffee340)
> > 4663 fsck_msdos PLDG ioctl, "ioctl", errno 1 Operation not permitted
> > 4663 fsck_msdos PSIG SIGABRT SIG_DFL code <1870144632>
> > 4663 fsck_msdos NAMI "fsck_msdos.core"
> >
> > Right after DIOCGPDINFO comes a pledge stdio.
> >
> > Index: main.c
> > ===================================================================
> > RCS file: /var/cvs/src/sbin/fsck_msdos/main.c,v
> > retrieving revision 1.22
> > diff -u -p -r1.22 main.c
> > --- main.c 23 Nov 2015 19:19:30 -0000 1.22
> > +++ main.c 28 May 2016 17:24:18 -0000
> > @@ -57,9 +57,6 @@ main(int argc, char *argv[])
> > {
> > int ch;
> >
> > - if (pledge("stdio rpath wpath disklabel", NULL) == -1)
> > - err(1, "pledge");
> > -
> > while ((ch = getopt(argc, argv, "pynf")) != -1) {
> > switch (ch) {
> > case 'f':
> >