Don't use SIG_register to register a SIG_IGN handler. It thinks it registers

a fucntion, but then it ends up calling (*1)(13) with all signals blocked
so cvs spins (with all signal blocked, getting SEGV). Use plain signal instead
To reproduce: cvs log file | less and quit.
This commit is contained in:
christos 2013-11-07 20:09:55 +00:00
parent 982091c4c2
commit 45dd466bd9
1 changed files with 1 additions and 1 deletions

View File

@ -30,7 +30,7 @@ signals_register (RETSIGTYPE (*handler)(int))
(void) SIG_register (SIGQUIT, handler);
#endif
#ifdef SIGPIPE
(void) SIG_register (SIGPIPE, SIG_IGN);
(void) signal (SIGPIPE, SIG_IGN);
#endif
#ifdef SIGTERM
(void) SIG_register (SIGTERM, handler);