From operator@technorama.net Mon Sep 13 16:46:11 1999
Return-Path: <operator@technorama.net>
Received: from technorama.net (technorama.net [207.99.93.38])
	by hub.freebsd.org (Postfix) with SMTP id 2CB3914F3E
	for <FreeBSD-gnats-submit@freebsd.org>; Mon, 13 Sep 1999 16:45:55 -0700 (PDT)
	(envelope-from operator@technorama.net)
Received: (qmail 19573 invoked by uid 2); 8 Sep 1999 09:20:16 -0000
Message-Id: <19990908092016.19572.qmail@technorama.net>
Date: 8 Sep 1999 09:20:16 -0000
From: operator@technorama.net
Reply-To: operator@technorama.net
To: FreeBSD-gnats-submit@freebsd.org
Subject: inetd leaks filedescriptors to children +FIX
X-Send-Pr-Version: 3.2

>Number:         13742
>Category:       bin
>Synopsis:       inetd leaks filedescriptors to children +FIX
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    des
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Sep 13 16:50:00 PDT 1999
>Closed-Date:    Tue Sep 14 00:30:05 PDT 1999
>Last-Modified:  Tue Sep 14 00:30:40 PDT 1999
>Originator:     System &
>Release:        FreeBSD 3.2-RELEASE i386
>Organization:
>Environment:

N/A

>Description:

inetd fails to close signalpipe[0,1] before exec.

>How-To-Repeat:

use lsof to track pipes of inetd children.

>Fix:

--- inetd.c.orig        Wed Sep  8 04:52:30 1999
+++ inetd.c     Wed Sep  8 05:03:59 1999
@@ -464,6 +464,11 @@
                syslog(LOG_ERR, "pipe: %%m");
                exit(EX_OSERR);
        }
+       if (fcntl(signalpipe[0], F_SETFD, 1) ||
+           fcntl(signalpipe[1], F_SETFD, 1)) {
+               syslog(LOG_ERR, "fcntl: %%m");
+               exit(EX_OSERR);
+       }
        FD_SET(signalpipe[0], &allsock);
        nsock++;
        if (signalpipe[0] > maxsock)


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->des 
Responsible-Changed-By: ru 
Responsible-Changed-When: Mon Sep 13 16:55:42 PDT 1999 
Responsible-Changed-Why:  
Over to the maintainer. 

From: Sheldon Hearn <sheldonh@uunet.co.za>
To: operator@technorama.net
Cc: FreeBSD-gnats-submit@FreeBSD.ORG
Subject: Re: bin/13742: inetd leaks filedescriptors to children +FIX 
Date: Tue, 14 Sep 1999 09:04:31 +0200

 On 08 Sep 1999 09:20:16 GMT, operator@technorama.net wrote:
 
 > inetd fails to close signalpipe[0,1] before exec.
 
 I must admit, I thought we'd already fixed that in rev 1.66 of inetd.c
 (and rev 1.46.2.7 for RELENG_3).
 
 Do this:
 
 	ident /usr/sbin/inetd
 
 You'll get a line like this:
 
 	$Id: inetd.c,v 1.70 1999/07/26 06:39:46 sheldonh Exp $
 
 If you have a revision number lower than 1.46.2.7 after inetd.c,v then
 it's time for you to upgrade. :-)
 
 Your feedback will be appreciated.
 Ciao,
 Sheldon.
 
State-Changed-From-To: open->closed 
State-Changed-By: des 
State-Changed-When: Tue Sep 14 00:30:05 PDT 1999 
State-Changed-Why:  
Already fixed in rev. 1.66 of src/usr.sbin/inetd/inetd.c 
>Unformatted:
