On Sun, 21 Apr 2002, Maxim Konovalov wrote: > As Adrian Penisoara already reported > > http://docs.freebsd.org/cgi/getmsg.cgi?fetch=19645+0+current/freebsd-current > > there is panic in -current. I believe it is related to the next > commit: > > nectar 2002/04/18 17:45:29 PDT > > Modified files: > sys/kern kern_descrip.c kern_exec.c > sys/sys filedesc.h > Log: > When exec'ing a set[ug]id program, make sure that the stdio file descriptors > (0, 1, 2) are allocated by opening /dev/null for any which are not already > open. > > Reviewed by: alfred, phk > MFC after: 2 days > > Here is my workaround but I am not sure is it correct or not. Seems > falloc() takes care about locking itself. > > Index: src/sys/kern/kern_descrip.c > =================================================================== > RCS file: /home/ncvs/src/sys/kern/kern_descrip.c,v > retrieving revision 1.138 > diff -u -r1.138 kern_descrip.c > --- src/sys/kern/kern_descrip.c 20 Apr 2002 12:02:52 -0000 1.138 > +++ src/sys/kern/kern_descrip.c 21 Apr 2002 17:04:58 -0000 > @@ -1528,9 +1528,7 @@ > if (fdp->fd_ofiles[i] != NULL) > continue; > if (devnull < 0) { > - FILEDESC_LOCK(fdp); > error = falloc(td, &fp, &fd); > - FILEDESC_UNLOCK(fdp); > if (error != 0) > break; > NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, "/dev/null", > > %%%
I use the same patch. Locking here is essentially equivalent to calling panic() here (except it gives a more confusing panic message :-). I think opening file descriptors on exec is wrong anyway. POSIX has close-on-exec but not open-on-exec. Bruce To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-current" in the body of the message