netfilter: helper: Add the rcu lock when call __nf_conntrack_helper_find
authorGao Feng <fgao@ikuai8.com>
Wed, 29 Mar 2017 11:11:27 +0000 (19:11 +0800)
committerPablo Neira Ayuso <pablo@netfilter.org>
Sat, 8 Apr 2017 21:52:15 +0000 (23:52 +0200)
commit8b5995d0633b04f9a0d321a7cc77e386440730cf
treed495422d1ce9a6b03ba312921d2b4b9ad90779d8
parent97aae0df1de4d7dd80905fb067e28b032a132995
netfilter: helper: Add the rcu lock when call __nf_conntrack_helper_find

When invoke __nf_conntrack_helper_find, it needs the rcu lock to
protect the helper module which would not be unloaded.

Now there are two caller nf_conntrack_helper_try_module_get and
ctnetlink_create_expect which don't hold rcu lock. And the other
callers left like ctnetlink_change_helper, ctnetlink_create_conntrack,
and ctnetlink_glue_attach_expect, they already hold the rcu lock
or spin_lock_bh.

Remove the rcu lock in functions nf_ct_helper_expectfn_find_by_name
and nf_ct_helper_expectfn_find_by_symbol. Because they return one pointer
which needs rcu lock, so their caller should hold the rcu lock, not in
these two functions.

Signed-off-by: Gao Feng <fgao@ikuai8.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_conntrack_helper.c
net/netfilter/nf_conntrack_netlink.c