summaryrefslogtreecommitdiffstats
path: root/main/arpwatch/15_all_arpwatch-2.1a15-fix-dead-lock.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/arpwatch/15_all_arpwatch-2.1a15-fix-dead-lock.patch')
-rw-r--r--main/arpwatch/15_all_arpwatch-2.1a15-fix-dead-lock.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/main/arpwatch/15_all_arpwatch-2.1a15-fix-dead-lock.patch b/main/arpwatch/15_all_arpwatch-2.1a15-fix-dead-lock.patch
new file mode 100644
index 000000000..9e94c7dd0
--- /dev/null
+++ b/main/arpwatch/15_all_arpwatch-2.1a15-fix-dead-lock.patch
@@ -0,0 +1,32 @@
+diff -Naru arpwatch-2.1a15.orig/report.c arpwatch-2.1a15/report.c
+--- arpwatch-2.1a15.orig/report.c 2006-09-23 19:31:47.000000000 +0400
++++ arpwatch-2.1a15/report.c 2006-09-23 19:38:54.000000000 +0400
+@@ -217,7 +217,12 @@
+ continue;
+ /* ECHILD means no one left */
+ if (errno != ECHILD)
+- syslog(LOG_ERR, "reaper: %m");
++ /* It is dangerous to call non reentrant */
++ /* functions from callback (POSIX) */
++ /* Next line effectively disables this as */
++ /* we never get here in debug */
++ if (debug)
++ syslog(LOG_ERR, "reaper: %m");
+ break;
+ }
+ /* Already got everyone who was done */
+@@ -225,8 +230,13 @@
+ break;
+ --cdepth;
+ if (WEXITSTATUS(status))
++ /* It is dangerous to call non-reentrant */
++ /* functions from callback (POSIX) */
++ /* Next line effectively disables this as */
++ /* we never get here in debug */
++ if (debug)
+ syslog(LOG_DEBUG, "reaper: pid %d, exit status %d",
+- pid, WEXITSTATUS(status));
++ pid, WEXITSTATUS(status));
+ }
+ return RETSIGVAL;
+ }