On Thu, Nov 05, 2015 at 11:33:56AM +0100, Marc Espie wrote:
> On Thu, Nov 05, 2015 at 10:54:32AM +0100, Theo Buehler wrote:
> > On Thu, Nov 05, 2015 at 10:42:54AM +0100, Marc Espie wrote:
> > > - if (pledge("stdio rpath getpw tty id ps vminfo", NULL) == -1)
> > > + if (pledge("stdio rpath getpw tty proc id ps vminfo", NULL) == -1)
> > >           err(1, "pledge");
> > 
> > I think both "proc" and "id" are too much: "id" was added to enable
> > renicing, but "proc" is good enough for that:
> > 
> > Index: usr.bin/top/top.c
> > ===================================================================
> > RCS file: /cvs/src/usr.bin/top/top.c,v
> > retrieving revision 1.87
> > diff -u -p -r1.87 top.c
> > --- usr.bin/top/top.c       4 Nov 2015 21:28:27 -0000       1.87
> > +++ usr.bin/top/top.c       5 Nov 2015 09:54:04 -0000
> > @@ -328,7 +328,7 @@ main(int argc, char *argv[])
> >             preset_argc = 0;
> >     } while (i != 0);
> >  
> > -   if (pledge("stdio rpath getpw tty id ps vminfo", NULL) == -1)
> > +   if (pledge("stdio rpath getpw tty proc ps vminfo", NULL) == -1)
> >             err(1, "pledge");
> >  
> >     /* set constants for username/uid display correctly */
> 
> WHAT ? I don't see setpriority in the list of syscalls that proc enables.
> 

That's right.  Nevertheless /src/sys/kern/kern_pledge.c, line 234:

229         [SYS_setsid] = PLEDGE_PROC,
230
231         [SYS_setrlimit] = PLEDGE_PROC | PLEDGE_ID,
232         [SYS_getpriority] = PLEDGE_PROC | PLEDGE_ID,
233
234         [SYS_setpriority] = PLEDGE_PROC | PLEDGE_ID,
235
236         [SYS_setuid] = PLEDGE_ID,

This was added to enable csh's nice builtin without adding "id" to
csh's promises.

Reply via email to