diff options
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.patch | 32 |
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; + } |