12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- Upstream-Status: Pending [from other distro Debian]
- From a3410b0bc81ab03a889d9ffc14e351badf8372f1 Mon Sep 17 00:00:00 2001
- From: Pierre Habouzit <madcoder@debian.org>
- Date: Mon, 26 Nov 2007 16:02:04 +0100
- Subject: [PATCH] Various fixes from the previous maintainer.
- ---
- xinetd/child.c | 20 +++++++++++++++++---
- xinetd/service.c | 8 ++++----
- 2 files changed, 21 insertions(+), 7 deletions(-)
- diff --git a/xinetd/child.c b/xinetd/child.c
- index 89ee54c..48e9615 100644
- --- a/xinetd/child.c
- +++ b/xinetd/child.c
- @@ -284,6 +284,7 @@ void child_process( struct server *serp )
- connection_s *cp = SERVER_CONNECTION( serp ) ;
- struct service_config *scp = SVC_CONF( sp ) ;
- const char *func = "child_process" ;
- + int fd, null_fd;
-
- signal_default_state();
-
- @@ -296,9 +297,22 @@ void child_process( struct server *serp )
- signals_pending[0] = -1;
- signals_pending[1] = -1;
-
- - Sclose(0);
- - Sclose(1);
- - Sclose(2);
- + if ( ( null_fd = open( "/dev/null", O_RDONLY ) ) == -1 )
- + {
- + msg( LOG_ERR, func, "open('/dev/null') failed: %m") ;
- + _exit( 1 ) ;
- + }
- +
- + for ( fd = 0 ; fd <= MAX_PASS_FD ; fd++ )
- + {
- + if ( fd != null_fd && dup2( null_fd, fd ) == -1 )
- + {
- + msg( LOG_ERR, func, "dup2(%d, %d) failed: %m") ;
- + _exit( 1 ) ;
- + }
- + }
- + if ( null_fd > MAX_PASS_FD )
- + (void) Sclose( null_fd ) ;
-
-
- #ifdef DEBUG_SERVER
- diff --git a/xinetd/service.c b/xinetd/service.c
- index 3d68d78..0132d6c 100644
- --- a/xinetd/service.c
- +++ b/xinetd/service.c
- @@ -745,8 +745,8 @@ static status_e failed_service(struct service *sp,
- return FAILED;
-
- if ( last == NULL ) {
- - last = SAIN( calloc( 1, sizeof(union xsockaddr) ) );
- - SVC_LAST_DGRAM_ADDR(sp) = (union xsockaddr *)last;
- + SVC_LAST_DGRAM_ADDR(sp) = SAIN( calloc( 1, sizeof(union xsockaddr) ) );
- + last = SAIN( SVC_LAST_DGRAM_ADDR(sp) );
- }
-
- (void) time( ¤t_time ) ;
- @@ -772,8 +772,8 @@ static status_e failed_service(struct service *sp,
- return FAILED;
-
- if( last == NULL ) {
- - last = SAIN6(calloc( 1, sizeof(union xsockaddr) ) );
- - SVC_LAST_DGRAM_ADDR( sp ) = (union xsockaddr *)last;
- + SVC_LAST_DGRAM_ADDR(sp) = SAIN6(calloc( 1, sizeof(union xsockaddr) ) );
- + last = SAIN6(SVC_LAST_DGRAM_ADDR(sp));
- }
-
- (void) time( ¤t_time ) ;
- --
- 1.5.3.6.2040.g15e6
|