]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
netfilter: nft_compat: use nfnetlink_unicast()
authorPablo Neira Ayuso <pablo@netfilter.org>
Thu, 15 Jul 2021 09:11:26 +0000 (11:11 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 18 Sep 2021 11:42:06 +0000 (13:42 +0200)
[ Upstream commit 241d1af4c11a75d4c17ecc0193a6ab60553efbfc ]

Use nfnetlink_unicast() which already translates EAGAIN to ENOBUFS,
since EAGAIN is reserved to report missing module dependencies to the
nfnetlink core.

e0241ae6ac59 ("netfilter: use nfnetlink_unicast() forgot to update
this spot.

Reported-by: Yajun Deng <yajun.deng@linux.dev>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/netfilter/nft_compat.c

index 5415ab14400d7a7b6323bb5cce28a31e35313bff..31e6da30da5f0d6cab7b68edc223472490fd3baa 100644 (file)
@@ -680,14 +680,12 @@ static int nfnl_compat_get_rcu(struct sk_buff *skb,
                goto out_put;
        }
 
-       ret = netlink_unicast(info->sk, skb2, NETLINK_CB(skb).portid,
-                             MSG_DONTWAIT);
-       if (ret > 0)
-               ret = 0;
+       ret = nfnetlink_unicast(skb2, info->net, NETLINK_CB(skb).portid);
 out_put:
        rcu_read_lock();
        module_put(THIS_MODULE);
-       return ret == -EAGAIN ? -ENOBUFS : ret;
+
+       return ret;
 }
 
 static const struct nla_policy nfnl_compat_policy_get[NFTA_COMPAT_MAX+1] = {