netfilter: nfnetlink: add missing __be16 cast
authorFlorian Westphal <fw@strlen.de>
Thu, 23 Jun 2022 13:05:09 +0000 (15:05 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 11 Jul 2022 14:40:45 +0000 (16:40 +0200)
Sparse flags this as suspicious, because this compares
integer with a be16 with no conversion.

Its a compat check for old userspace that sends host byte order,
so force a be16 cast here.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nfnetlink.c

index 2f7c477..c24b124 100644 (file)
@@ -626,7 +626,7 @@ static void nfnetlink_rcv_skb_batch(struct sk_buff *skb, struct nlmsghdr *nlh)
        nfgenmsg = nlmsg_data(nlh);
        skb_pull(skb, msglen);
        /* Work around old nft using host byte order */
-       if (nfgenmsg->res_id == NFNL_SUBSYS_NFTABLES)
+       if (nfgenmsg->res_id == (__force __be16)NFNL_SUBSYS_NFTABLES)
                res_id = NFNL_SUBSYS_NFTABLES;
        else
                res_id = ntohs(nfgenmsg->res_id);