From f50777cdaba82eb986b893bf5a60780954a68458 Mon Sep 17 00:00:00 2001 From: Tim Wojtulewicz Date: Sun, 26 Jun 2022 13:04:08 -0700 Subject: [PATCH] Avoid calling DBG_LOG during signal handling --- src/iosource/Manager.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/iosource/Manager.cc b/src/iosource/Manager.cc index 25a5994edd..90f2a6e3ad 100644 --- a/src/iosource/Manager.cc +++ b/src/iosource/Manager.cc @@ -24,6 +24,8 @@ #define DEFAULT_PREFIX "pcap" +extern int signal_val; + namespace zeek::iosource { @@ -45,7 +47,11 @@ void Manager::WakeupHandler::Process() void Manager::WakeupHandler::Ping(std::string_view where) { - DBG_LOG(DBG_MAINLOOP, "Pinging WakeupHandler from %s", where.data()); + // Calling DBG_LOG calls fprintf, which isn't safe to call in a signal + // handler. + if ( signal_val != 0 ) + DBG_LOG(DBG_MAINLOOP, "Pinging WakeupHandler from %s", where.data()); + flare.Fire(true); }