Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Apr 2002 18:25:17 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Maxim Konovalov <maxim@macomnet.ru>
Cc:        freebsd-current@FreeBSD.ORG, Adrian Penisoara <ady@freebsd.ady.ro>, <nectar@FreeBSD.ORG>
Subject:   Re: panic:bremfree with today's current and linux-netscape
Message-ID:  <20020422181848.G8032-100000@gamplex.bde.org>
In-Reply-To: <20020421210807.T76833-100000@news1.macomnet.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
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 majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020422181848.G8032-100000>