netfilter: cttimeout: decouple unlink and free on netns destruction
Increment the extid on module removal; this makes sure that even in extreme cases any old uncofirmed entry that happened to be kept e.g. on nfnetlink_queue list will not trip over a stale timeout reference. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
c56716c69c
commit
42df4fb9b1
@ -656,12 +656,24 @@ err_out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int untimeout(struct nf_conn *ct, void *timeout)
|
||||
{
|
||||
struct nf_conn_timeout *timeout_ext = nf_ct_timeout_find(ct);
|
||||
|
||||
if (timeout_ext)
|
||||
RCU_INIT_POINTER(timeout_ext->timeout, NULL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void __exit cttimeout_exit(void)
|
||||
{
|
||||
nfnetlink_subsys_unregister(&cttimeout_subsys);
|
||||
|
||||
unregister_pernet_subsys(&cttimeout_ops);
|
||||
RCU_INIT_POINTER(nf_ct_timeout_hook, NULL);
|
||||
|
||||
nf_ct_iterate_destroy(untimeout, NULL);
|
||||
synchronize_rcu();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user