]> source.dussan.org Git - rspamd.git/commitdiff
[Fix] Fix bad access when printing pending events on failure path
authorVsevolod Stakhov <vsevolod@rspamd.com>
Fri, 10 Nov 2023 08:56:29 +0000 (08:56 +0000)
committerVsevolod Stakhov <vsevolod@rspamd.com>
Fri, 10 Nov 2023 08:56:29 +0000 (08:56 +0000)
src/libserver/async_session.c

index 962d5136803bddc9b3ee91c6b7ba2f60e14350d5..baaee627ecf3224da8c3699b7cc4bc6f05eb2769 100644 (file)
@@ -196,10 +196,10 @@ void rspamd_session_remove_event_full(struct rspamd_async_session *session,
        search_ev.user_data = ud;
        k = kh_get(rspamd_events_hash, session->events, &search_ev);
        if (k == kh_end(session->events)) {
-               gchar t;
 
-               msg_err_session("cannot find event: %p(%p) from %s", fin, ud, event_source);
-               kh_foreach(session->events, found_ev, t, {
+               msg_err_session("cannot find event: %p(%p) from %s (%d total events)", fin, ud,
+                                               event_source, (int) kh_size(session->events));
+               kh_foreach_key(session->events, found_ev, {
                        msg_err_session("existing event %s (%s): %p(%p)",
                                                        found_ev->subsystem,
                                                        found_ev->event_source,
@@ -207,8 +207,6 @@ void rspamd_session_remove_event_full(struct rspamd_async_session *session,
                                                        found_ev->user_data);
                });
 
-               (void) t;
-
                g_assert_not_reached();
        }