diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2021-05-17 14:43:08 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2021-05-29 01:04:53 +0200 |
commit | e0241ae6ac59ffa318255640c047f7c90457fbe5 (patch) | |
tree | 9890948665521743f4285208149bd828ce7c0c0b /net/netfilter/nfnetlink_cthelper.c | |
parent | 02d85142670b6676abcfd95023c8d28288dc5ad9 (diff) | |
download | linux-e0241ae6ac59ffa318255640c047f7c90457fbe5.tar.gz linux-e0241ae6ac59ffa318255640c047f7c90457fbe5.tar.bz2 linux-e0241ae6ac59ffa318255640c047f7c90457fbe5.zip |
netfilter: use nfnetlink_unicast()
Replace netlink_unicast() calls by nfnetlink_unicast() which already
deals with translating EAGAIN to ENOBUFS as the nfnetlink core expects.
nfnetlink_unicast() calls nlmsg_unicast() which returns zero in case of
success, otherwise the netlink core function netlink_rcv_skb() turns
err > 0 into an acknowlegment.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'net/netfilter/nfnetlink_cthelper.c')
-rw-r--r-- | net/netfilter/nfnetlink_cthelper.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/net/netfilter/nfnetlink_cthelper.c b/net/netfilter/nfnetlink_cthelper.c index 322ac5dd5402..df58cd534ff5 100644 --- a/net/netfilter/nfnetlink_cthelper.c +++ b/net/netfilter/nfnetlink_cthelper.c @@ -663,14 +663,10 @@ static int nfnl_cthelper_get(struct sk_buff *skb, const struct nfnl_info *info, break; } - ret = netlink_unicast(info->sk, skb2, NETLINK_CB(skb).portid, - MSG_DONTWAIT); - if (ret > 0) - ret = 0; - - /* this avoids a loop in nfnetlink. */ - return ret == -EAGAIN ? -ENOBUFS : ret; + ret = nfnetlink_unicast(skb2, info->net, NETLINK_CB(skb).portid); + break; } + return ret; } |