diff options
Diffstat (limited to 'contrib/libarchive/unzip/bsdunzip.c')
| -rw-r--r-- | contrib/libarchive/unzip/bsdunzip.c | 15 | 
1 files changed, 14 insertions, 1 deletions
| diff --git a/contrib/libarchive/unzip/bsdunzip.c b/contrib/libarchive/unzip/bsdunzip.c index 621afbeb9d6a..1b520e841690 100644 --- a/contrib/libarchive/unzip/bsdunzip.c +++ b/contrib/libarchive/unzip/bsdunzip.c @@ -29,6 +29,9 @@  #ifdef HAVE_LOCALE_H  #include <locale.h>  #endif +#ifdef HAVE_SIGNAL_H +#include <signal.h> +#endif  #ifdef HAVE_STDARG_H  #include <stdarg.h>  #endif @@ -54,7 +57,7 @@  #include "bsdunzip.h"  #include "passphrase.h" -#include "err.h" +#include "lafe_err.h"  /* command-line options */  static int		 a_opt;		/* convert EOL */ @@ -1187,6 +1190,16 @@ main(int argc, char *argv[])  	const char *zipfile;  	int nopts; +#if defined(HAVE_SIGACTION) && defined(SIGCHLD) +	{ /* Do not ignore SIGCHLD. */ +		struct sigaction sa; +		sa.sa_handler = SIG_DFL; +		sigemptyset(&sa.sa_mask); +		sa.sa_flags = 0; +		sigaction(SIGCHLD, &sa, NULL); +	} +#endif +  	lafe_setprogname(*argv, "bsdunzip");  #if HAVE_SETLOCALE | 
