summaryrefslogtreecommitdiffstats
path: root/input/flow
diff options
context:
space:
mode:
authorEric Leblond <eric@regit.org>2012-07-18 20:56:04 +0000
committerPablo Neira Ayuso <pablo@netfilter.org>2012-07-20 10:08:31 +0200
commit8ec1ed82572d7e509ce14c476df81241293a770c (patch)
tree91c0129efa492c71b7634323f821caa11d193be9 /input/flow
parent38444668368fa499c6f788ae259338d2a4c02324 (diff)
NFCT: fix crash in polling mode if used by two stacks
The polling timer initialisation code was put in the configurator code. It was then created for all instances. But only first one has a valid NFCT handle. This was resulting in a crash. This patch moves the timer initialisation in the constructor which is called only once on the main NFCT instance. Signed-off-by: Eric Leblond <eric@regit.org> Reported-by: Gomathivinayagam Muthuvinayagam <sankarmail@gmail.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'input/flow')
-rw-r--r--input/flow/ulogd_inpflow_NFCT.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/input/flow/ulogd_inpflow_NFCT.c b/input/flow/ulogd_inpflow_NFCT.c
index b45a435..dcba58f 100644
--- a/input/flow/ulogd_inpflow_NFCT.c
+++ b/input/flow/ulogd_inpflow_NFCT.c
@@ -982,11 +982,6 @@ static int configure_nfct(struct ulogd_pluginstance *upi,
if (ret < 0)
return ret;
- ulogd_init_timer(&cpi->timer, upi, polling_timer_cb);
- if (pollint_ce(upi->config_kset).u.value != 0)
- ulogd_add_timer(&cpi->timer,
- pollint_ce(upi->config_kset).u.value);
-
return 0;
}
@@ -1152,6 +1147,11 @@ static int constructor_nfct_polling(struct ulogd_pluginstance *upi)
if (cpi->ct == NULL)
goto err_ct_cache;
+ ulogd_init_timer(&cpi->timer, upi, polling_timer_cb);
+ if (pollint_ce(upi->config_kset).u.value != 0)
+ ulogd_add_timer(&cpi->timer,
+ pollint_ce(upi->config_kset).u.value);
+
ulogd_log(ULOGD_NOTICE, "NFCT working in polling mode\n");
return 0;