From 64d7d2be000e2146a2b141f3881872d1a1eae4d6 Mon Sep 17 00:00:00 2001 From: Corubba Smith Date: Tue, 25 Mar 2025 01:24:04 +0100 Subject: [PATCH] nfct: fix counter-reset without hashtable In event mode the hashtable is optional, and sending SIGUSR2 to ulogd will call get_ctr_zero(). The dump_reset_handler will try to update the hashtable regardless of whether it is used (and thus initialized), which results in a segfault if it isn't. Instead just short-circuit the handler, and skip any further result processing because it's not used in this case anyway. All flow counters in conntrack are reset regardless of the return value of the handler/callback. Signed-off-by: Corubba Smith Signed-off-by: Florian Westphal --- input/flow/ulogd_inpflow_NFCT.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/input/flow/ulogd_inpflow_NFCT.c b/input/flow/ulogd_inpflow_NFCT.c index 93edb76..cdda741 100644 --- a/input/flow/ulogd_inpflow_NFCT.c +++ b/input/flow/ulogd_inpflow_NFCT.c @@ -989,6 +989,9 @@ dump_reset_handler(enum nf_conntrack_msg_type type, int ret = NFCT_CB_CONTINUE, rc, id; struct ct_timestamp *ts; + if (!cpi->ct_active) + return NFCT_CB_STOP; + switch(type) { case NFCT_T_UPDATE: id = hashtable_hash(cpi->ct_active, ct); -- 2.47.2