summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorZiyang Xuan <william.xuanziyang@huawei.com>2022-11-03 04:12:02 +0300
committerFlorian Westphal <fw@strlen.de>2022-11-09 01:16:13 +0300
commit03832a32bf8ff0a8305d94ddd3979835a807248f (patch)
treeecad606f2999f189c3f00c6bf9a2ad74ddae999e /net
parentce9e57feeed81d17d5e80ed86f516ff0d39c3867 (diff)
downloadlinux-03832a32bf8ff0a8305d94ddd3979835a807248f.tar.xz
netfilter: nfnetlink: fix potential dead lock in nfnetlink_rcv_msg()
When type is NFNL_CB_MUTEX and -EAGAIN error occur in nfnetlink_rcv_msg(), it does not execute nfnl_unlock(). That would trigger potential dead lock. Fixes: 50f2db9e368f ("netfilter: nfnetlink: consolidate callback types") Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com> Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'net')
-rw-r--r--net/netfilter/nfnetlink.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/netfilter/nfnetlink.c b/net/netfilter/nfnetlink.c
index 9c44518cb70f..6d18fb346868 100644
--- a/net/netfilter/nfnetlink.c
+++ b/net/netfilter/nfnetlink.c
@@ -294,6 +294,7 @@ replay:
nfnl_lock(subsys_id);
if (nfnl_dereference_protected(subsys_id) != ss ||
nfnetlink_find_client(type, ss) != nc) {
+ nfnl_unlock(subsys_id);
err = -EAGAIN;
break;
}