On Thu, May 21, 2020 at 11:07:39PM +0100, Ricardo Mestre wrote: > Hi, > > After the handle sioctl_hdl `hdl' is opened (which in itself requires rw fs > access and opening an unix socket) then all operations happen over that handle > so the program may be restricted to only "stdio". > > All options were tested successfully, including the examples from the manpage > plus tweaking the audio from an app ($MYBROWSER). > > Comments? OK?
Works for me. ok brynet@ > Index: sndioctl.c > =================================================================== > RCS file: /cvs/src/usr.bin/sndioctl/sndioctl.c,v > retrieving revision 1.10 > diff -u -p -u -r1.10 sndioctl.c > --- sndioctl.c 17 May 2020 05:39:32 -0000 1.10 > +++ sndioctl.c 21 May 2020 22:04:58 -0000 > @@ -948,6 +948,13 @@ main(int argc, char **argv) > fprintf(stderr, "%s: can't open control device\n", devname); > exit(1); > } > + > + if (pledge("stdio", NULL) == -1) { > + fprintf(stderr, "%s: pledge: %s\n", getprogname(), > + strerror(errno)); > + exit(1); > + } > + > if (!sioctl_ondesc(hdl, ondesc, NULL)) { > fprintf(stderr, "%s: can't get device description\n", devname); > exit(1); > >