From 8a28e07f3bfd2a031491db55173370e10dc074e3 Mon Sep 17 00:00:00 2001 From: Alexandre Ferrieux Date: Sat, 16 Jul 2022 21:34:39 +0200 Subject: [PATCH] Set SA_RESTART on non-lethal signals (REQ_INFO, FLUSH_PCAP) to avoid corrupting binary pcap output --- tcpdump.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tcpdump.c b/tcpdump.c index e028d2e7..515edf5d 100644 --- a/tcpdump.c +++ b/tcpdump.c @@ -2743,7 +2743,14 @@ static void memset(&new, 0, sizeof(new)); new.sa_handler = func; - if (sig == SIGCHLD) + if ((sig == SIGCHLD) +# ifdef SIGNAL_REQ_INFO + || (sig == SIGNAL_REQ_INFO) +# endif +# ifdef SIGNAL_FLUSH_PCAP + || (sig == SIGNAL_FLUSH_PCAP) +# endif + ) new.sa_flags = SA_RESTART; if (sigaction(sig, &new, &old) < 0) return (SIG_ERR); -- 2.25.1