aboutsummaryrefslogtreecommitdiff
path: root/contrib/libarchive/cpio
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libarchive/cpio')
-rw-r--r--contrib/libarchive/cpio/cmdline.c2
-rw-r--r--contrib/libarchive/cpio/cpio.c14
-rw-r--r--contrib/libarchive/cpio/test/test_owner_parse.c2
3 files changed, 13 insertions, 5 deletions
diff --git a/contrib/libarchive/cpio/cmdline.c b/contrib/libarchive/cpio/cmdline.c
index c67519947dbc..db06c03c011d 100644
--- a/contrib/libarchive/cpio/cmdline.c
+++ b/contrib/libarchive/cpio/cmdline.c
@@ -26,7 +26,7 @@
#endif
#include "cpio.h"
-#include "err.h"
+#include "lafe_err.h"
/*
* Short options for cpio. Please keep this sorted.
diff --git a/contrib/libarchive/cpio/cpio.c b/contrib/libarchive/cpio/cpio.c
index 2bf1bfa2985a..262db510568b 100644
--- a/contrib/libarchive/cpio/cpio.c
+++ b/contrib/libarchive/cpio/cpio.c
@@ -60,7 +60,7 @@
#endif
#include "cpio.h"
-#include "err.h"
+#include "lafe_err.h"
#include "line_reader.h"
#include "passphrase.h"
@@ -124,13 +124,21 @@ main(int argc, char *argv[])
cpio->buff_size = sizeof(buff);
-#if defined(HAVE_SIGACTION) && defined(SIGPIPE)
- { /* Ignore SIGPIPE signals. */
+#if defined(HAVE_SIGACTION)
+ {
struct sigaction sa;
sigemptyset(&sa.sa_mask);
sa.sa_flags = 0;
+#ifdef SIGPIPE
+ /* Ignore SIGPIPE signals. */
sa.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &sa, NULL);
+#endif
+#ifdef SIGCHLD
+ /* Do not ignore SIGCHLD. */
+ sa.sa_handler = SIG_DFL;
+ sigaction(SIGCHLD, &sa, NULL);
+#endif
}
#endif
diff --git a/contrib/libarchive/cpio/test/test_owner_parse.c b/contrib/libarchive/cpio/test/test_owner_parse.c
index dfc78ca77aec..bd68f21cec9b 100644
--- a/contrib/libarchive/cpio/test/test_owner_parse.c
+++ b/contrib/libarchive/cpio/test/test_owner_parse.c
@@ -7,7 +7,7 @@
#include "test.h"
#include "../cpio.h"
-#include "err.h"
+#include "lafe_err.h"
#if !defined(_WIN32)
#define ROOT "root"