aboutsummaryrefslogtreecommitdiff
path: root/contrib/libarchive/unzip/bsdunzip.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libarchive/unzip/bsdunzip.c')
-rw-r--r--contrib/libarchive/unzip/bsdunzip.c15
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