From 34758d5c1565188352c6a58a9ae223e44db7e46d Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Mon, 18 Feb 2002 20:06:57 +0000 Subject: [PATCH] Ignore SIGPIPE and allow EPIPE to get through to the program so that we don't get stuck in a recursive loop trying to report a broken pipe across that same broken pipe. Debian bug #128632 (Colin Walters) --- main.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index 0ed7df38..a54d67f7 100644 --- a/main.c +++ b/main.c @@ -839,10 +839,13 @@ int main(int argc,char *argv[]) } signal(SIGINT,SIGNAL_CAST sig_int); - signal(SIGPIPE,SIGNAL_CAST sig_int); signal(SIGHUP,SIGNAL_CAST sig_int); signal(SIGTERM,SIGNAL_CAST sig_int); + /* Ignore SIGPIPE; we consistently check error codes and will + * see the EPIPE. */ + signal(SIGPIPE, SIG_IGN); + /* Initialize push_dir here because on some old systems getcwd (implemented by forking "pwd" and reading its output) doesn't work when there are other child processes. Also, on all systems -- 2.34.1