From a49dcd5c3c6b79470ad71dc45ccf29f65ba2a7f9 Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Sun, 22 Jan 2006 21:33:56 +0100 Subject: Fixed the bug that caused a fork() bomb last night. --- bitlbee.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'bitlbee.c') diff --git a/bitlbee.c b/bitlbee.c index 5da5d6e1..2f757f53 100644 --- a/bitlbee.c +++ b/bitlbee.c @@ -103,10 +103,14 @@ int bitlbee_daemon_init() } else if( i != 0 ) exit( 0 ); - close( 0 ); - close( 1 ); - close( 2 ); + 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( 0 ) ) close( 1 ); + if( isatty( 0 ) ) close( 2 ); } #endif -- cgit v1.2.3