I fail to see why force a crash there, so let's at least
be defensive for now, as it does happen in practice.
Knot Resolver 6.0.13 (2025-05-dd)
=================================
+Security
+--------
+- DoS: fix more rare crashes with `requirement` failing (#930, !1696)
+ [system] requirement "session2_is_empty(s)" failed in session2_transport_event
+
Bugfixes
--------
- fix `dnssec: false` (!1687)
bool is_close_event = (event == PROTOLAYER_EVENT_CLOSE ||
event == PROTOLAYER_EVENT_FORCE_CLOSE);
if (is_close_event) {
- kr_require(session2_is_empty(s));
+ if (kr_fails_assert(session2_is_empty(s))) {
+ session2_waitinglist_finalize(s, KR_STATE_FAIL);
+ session2_tasklist_finalize(s, KR_STATE_FAIL);
+ }
session2_timer_stop(s);
s->closing = true;
}