On Mon, Oct 19, 2015 at 12:23:21PM +1100, Ian McWilliam wrote: > > > Oct 19 11:55:52 ianm-openbsd /bsd: csh(29463): syscall 96 > > Oct 19 11:55:52 ianm-openbsd /bsd: csh(6081): syscall 96 > > Oct 19 11:55:52 ianm-openbsd /bsd: csh(18068): syscall 96 > > Oct 19 11:57:14 ianm-openbsd /bsd: csh(31019): syscall 96 > > Oct 19 11:57:14 ianm-openbsd /bsd: csh(20634): syscall 96 > > Oct 19 11:57:14 ianm-openbsd /bsd: csh(6171): syscall 96 > > 96 STD { int sys_setpriority(int which, id_t who, int prio); } > > Some of my csh scripts set 'nice' priorities on some things they do. > > Ian McWilliam
As a temporary workaround you could call /usr/bin/nice to avoid csh's builtin. It looks like csh would currently need to pledge("id") in order for the builtin nice to work --- setpriority() is called in three places depending on how nice is invoked. However, adding "id" to a shell seems a bit scary. Would it be preferable to mark [SYS_setpriority] = PLEDGE_PROC | PLEDGE_ID? Index: bin/csh/csh.c =================================================================== RCS file: /cvs/src/bin/csh/csh.c,v retrieving revision 1.29 diff -u -p -r1.29 csh.c --- bin/csh/csh.c 18 Oct 2015 03:09:11 -0000 1.29 +++ bin/csh/csh.c 19 Oct 2015 10:04:28 -0000 @@ -104,7 +104,7 @@ main(int argc, char *argv[]) cshout = stdout; csherr = stderr; - if (pledge("stdio rpath wpath cpath fattr getpw proc exec tty", + if (pledge("stdio rpath wpath cpath fattr getpw proc exec tty id", NULL) == -1) perror("pledge");