From owner-freebsd-current@FreeBSD.ORG Sun Dec 28 10:49:52 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 95C2916A4CE; Sun, 28 Dec 2003 10:49:52 -0800 (PST) Received: from transport.cksoft.de (transport.cksoft.de [62.111.66.27]) by mx1.FreeBSD.org (Postfix) with ESMTP id 27F7143D55; Sun, 28 Dec 2003 10:49:51 -0800 (PST) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from transport.cksoft.de (localhost [127.0.0.1]) by transport.cksoft.de (Postfix) with ESMTP id 1B4F51FF91D; Sun, 28 Dec 2003 19:49:50 +0100 (CET) Received: by transport.cksoft.de (Postfix, from userid 66) id 6881A1FF90C; Sun, 28 Dec 2003 19:49:48 +0100 (CET) Received: by mail.int.zabbadoz.net (Postfix, from userid 1060) id 5BC7D153ED; Sun, 28 Dec 2003 18:49:29 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mail.int.zabbadoz.net (Postfix) with ESMTP id 506F015329; Sun, 28 Dec 2003 18:49:29 +0000 (UTC) Date: Sun, 28 Dec 2003 18:49:29 +0000 (UTC) From: "Bjoern A. Zeeb" X-X-Sender: bz@e0-0.zab2.int.zabbadoz.net To: David Malone In-Reply-To: <20031228180536.GA49762@walton.maths.tcd.ie> Message-ID: References: <20031227205000.GG86308@e-Gitt.NET> <1035.1072561906@critter.freebsd.dk> <20031228180536.GA49762@walton.maths.tcd.ie> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by AMaViS cksoft-s20020300-20031204bz on transport.cksoft.de cc: freebsd-current@freebsd.org cc: re@freebsd.org Subject: Re: file descriptor leak in 5.2-RC X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Dec 2003 18:49:52 -0000 On Sun, 28 Dec 2003, David Malone wrote: > > I'd call it a surprise if someone after all had a fix within the next 10 > > hours or so. > > I'm fairly certain I've found the problem (and, indeed, it looks > like I introduced it too while changing how falloc works). You loose > a reference to /dev/null every time you exec a suid program with > at least one of std{in,out,err} closed. I'm guessing that some part > of postfix does this. > > I believe the patch below will fix the problem. I guess I'm too > late for you to test it now? verified to work against my testcase. --- cut (pasted out of console log w/ other debugging printfs) --- > sysctl kern.openfiles kern.openfiles: 43 > ./exec-closed123-ping > sysctl kern.openfiles kern.openfiles: 43 > ./exec-closed123-ping > sysctl kern.openfiles kern.openfiles: 43 --- cut --- please commit. > Index: kern_descrip.c > =================================================================== > RCS file: /cvs/FreeBSD-CVS/src/sys/kern/kern_descrip.c,v > retrieving revision 1.215 > diff -u -r1.215 kern_descrip.c > --- kern_descrip.c 19 Oct 2003 20:41:06 -0000 1.215 > +++ kern_descrip.c 28 Dec 2003 17:55:00 -0000 > @@ -1730,6 +1730,7 @@ > fp->f_type = DTYPE_VNODE; > VOP_UNLOCK(nd.ni_vp, 0, td); > devnull = fd; > + fdrop(fp, td); > } else { > error = do_dup(td, DUP_FIXED, devnull, i, &retval); > if (error != 0) -- Bjoern A. Zeeb bzeeb at Zabbadoz dot NeT 56 69 73 69 74 http://www.zabbadoz.net/