From: Dmitry Goncharov Date: Fri, 21 Oct 2022 22:54:39 +0000 (-0400) Subject: [SV 63248] Ignore SIGPIPE X-Git-Tag: 4.3.92~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5b1ca277caefca44baf0aeaea2e32766e9bff097;p=thirdparty%2Fmake.git [SV 63248] Ignore SIGPIPE Don't terminate when make's output is redirected to a pipe and the reader exits early; e.g.: $ echo 'all:; sleep 2' | make -f- -j2 -O |: This lets us unlink temporary files, and tell the user that make was not able to write its output. Reported by Frank Heckenbach . * src/main.c (main): Ignore SIGPIPE. * src/posixos.c (osync_clear): Fix a memory leak. --- diff --git a/src/main.c b/src/main.c index 509253fa..ba44fd67 100644 --- a/src/main.c +++ b/src/main.c @@ -1182,6 +1182,11 @@ main (int argc, char **argv, char **envp) /* Useful for attaching debuggers, etc. */ SPIN ("main-entry"); + /* Don't die if our stdout sends us SIGPIPE. */ +#ifdef SIGPIPE + bsd_signal (SIGPIPE, SIG_IGN); +#endif + #ifdef HAVE_ATEXIT if (ANY_SET (check_io_state (), IO_STDOUT_OK)) atexit (close_stdout); diff --git a/src/posixos.c b/src/posixos.c index a48116db..fca31927 100644 --- a/src/posixos.c +++ b/src/posixos.c @@ -699,6 +699,7 @@ osync_clear () int r; EINTRLOOP (r, unlink (osync_tmpfile)); + free (osync_tmpfile); osync_tmpfile = NULL; } }