freebsd-ports/security/xinetd/files/patch-xinetd_child.c
Renato Botelho eccd2a14db Fix some edge cases in xinetd file descriptor handling
This change fixes the case where the listening file descriptor is in 0~2
range (easily reprodutible with a single UDP service)

PR:		211038
Obtained from:	pfSense
MFH:		2016Q3
Sponsored by:	Rubicon Communications (Netgate)
2016-09-05 17:09:18 +00:00

24 lines
515 B
C

--- xinetd/child.c.orig 2016-07-13 19:00:31 UTC
+++ xinetd/child.c
@@ -168,7 +168,8 @@ void exec_server( const struct server *s
}
#endif
- (void) Sclose( descriptor ) ;
+ if ( descriptor > MAX_PASS_FD )
+ (void) Sclose( descriptor ) ;
#ifndef solaris
#if !defined(HAVE_SETSID)
@@ -321,11 +322,6 @@ void child_process( struct server *serp
signals_pending[0] = -1;
signals_pending[1] = -1;
- Sclose(0);
- Sclose(1);
- Sclose(2);
-
-
#ifdef DEBUG_SERVER
if ( debug.on )
{