34 lines
840 B
Diff
34 lines
840 B
Diff
|
|
From 8a28e07f3bfd2a031491db55173370e10dc074e3 Mon Sep 17 00:00:00 2001
|
||
|
|
From: Alexandre Ferrieux <alexandre.ferrieux@orange.com>
|
||
|
|
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
|
||
|
|
|