repo: ngircd
action: commit
revision: 
path_from: 
revision_from: ba720fcbaeaacee700d7d23936cf481e6fcb83b1:
path_to: 
revision_to: 
git.thebackupbox.net
ngircd
git clone git://git.thebackupbox.net/ngircd
commit ba720fcbaeaacee700d7d23936cf481e6fcb83b1
Author: Florian Westphal 
Date:   Tue Sep 14 23:53:59 2010 +0200

    Fix signalpipe file descriptor leak on RESTART

    Signals_Init() must only be called once.
    This does not affect any ngircd release version.

    Earlier version of this patch moved the io and sighandler
    initialization before the while() loop, but as Alexander
    Barton noticed that broke all systems without builtin select
    support in io.c...

diff --git a/src/ngircd/sighandlers.c b/src/ngircd/sighandlers.c
index aaff1eabfa2099488ffca7f648fe2eec50a60d33..
index ..80eef3e603d3a382f2e31bf8511ce4433c24c218 100644
--- a/src/ngircd/sighandlers.c
+++ b/src/ngircd/sighandlers.c
@@ -266,6 +266,8 @@ Signals_Init(void)
 #ifdef HAVE_SIGACTION
 	struct sigaction saction;
 #endif
+	if (signalpipe[0] > 0 || signalpipe[1] > 0)
+		return true;

 	if (pipe(signalpipe))
 		return false;

-----END OF PAGE-----