From bb3477107afcc6f532758bb08c4677d62e17ee57 Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Sun, 14 Mar 2010 16:35:55 +0000 Subject: Close fd's 0,1,2 no matter what, not just if they're ttys. (Bug #476) --- bitlbee.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'bitlbee.c') diff --git a/bitlbee.c b/bitlbee.c index b31c31fe..a96cff03 100644 --- a/bitlbee.c +++ b/bitlbee.c @@ -108,11 +108,17 @@ int bitlbee_daemon_init() chdir( "/" ); - /* Sometimes std* are already closed (for example when we're in a RESTARTed - BitlBee process. So let's only close TTY-fds. */ - if( isatty( 0 ) ) close( 0 ); - if( isatty( 1 ) ) close( 1 ); - if( isatty( 2 ) ) close( 2 ); + i = close( 0 ) == 0; + i += close( 1 ) == 0; + i += close( 2 ) == 0; + /* To avoid that something important ends up on one of those + fd's, open them for something bogus. Otherwise RESTART + may cause troubles. */ + while( i > 0 ) + { + open( "/dev/null", O_WRONLY ); + i --; + } } #endif -- cgit v1.2.3