netfilter: xt_RATEEST: acquire xt_rateest_mutex for hash insert
authorCong Wang <xiyou.wangcong@gmail.com>
Mon, 5 Feb 2018 22:41:45 +0000 (14:41 -0800)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 31 May 2018 23:30:13 +0000 (00:30 +0100)
commitdc6b17441d28393b827e96b735c40377a68b1111
tree6a9e381bfc33512028235e8aedb0ec4a8a424775
parent0846479232c94660b2f62d9390da3e8fbfc6d337
netfilter: xt_RATEEST: acquire xt_rateest_mutex for hash insert

commit 7dc68e98757a8eccf8ca7a53a29b896f1eef1f76 upstream.

rateest_hash is supposed to be protected by xt_rateest_mutex,
and, as suggested by Eric, lookup and insert should be atomic,
so we should acquire the xt_rateest_mutex once for both.

So introduce a non-locking helper for internal use and keep the
locking one for external.

Reported-by: <syzbot+5cb189720978275e4c75@syzkaller.appspotmail.com>
Fixes: 5859034d7eb8 ("[NETFILTER]: x_tables: add RATEEST target")
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Reviewed-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
net/netfilter/xt_RATEEST.c