From 3d2c69a13bd6362ebe12c89c6c3f0b493d11dcfe Mon Sep 17 00:00:00 2001 From: Benjamin Bannier Date: Mon, 25 Sep 2023 14:59:19 +0200 Subject: [PATCH] Merge branch 'origin/topic/bbannier/spicy-reject_protocol-during-teardown' (cherry picked from commit 03597d210da59f212a713f49a199a9b6e288252b) --- src/spicy/runtime-support.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/spicy/runtime-support.cc b/src/spicy/runtime-support.cc index b048e93d74..a6397ca85b 100644 --- a/src/spicy/runtime-support.cc +++ b/src/spicy/runtime-support.cc @@ -436,7 +436,12 @@ void rt::confirm_protocol() { void rt::reject_protocol(const std::string& reason) { auto _ = hilti::rt::profiler::start("zeek/rt/reject_protocol"); auto cookie = static_cast(hilti::rt::context::cookie()); - assert(cookie); + + // We might be invoked during teardown when the cookie has already been + // cleared. These other code paths also take care of sending an analyzer + // violation to Zeek, so we can immediately return for such cases here. + if ( ! cookie ) + return; if ( auto x = cookie->protocol ) { auto tag = spicy_mgr->tagForProtocolAnalyzer(x->analyzer->GetAnalyzerTag());