netfilter: nft_bitwise: Adjust parentheses to fix memcmp size argument
authorNathan Chancellor <natechancellor@gmail.com>
Wed, 14 Aug 2019 16:58:09 +0000 (09:58 -0700)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 14 Aug 2019 21:36:45 +0000 (23:36 +0200)
clang warns:

net/netfilter/nft_bitwise.c:138:50: error: size argument in 'memcmp'
call is a comparison [-Werror,-Wmemsize-comparison]
        if (memcmp(&priv->xor, &zero, sizeof(priv->xor) ||
                                      ~~~~~~~~~~~~~~~~~~^~
net/netfilter/nft_bitwise.c:138:6: note: did you mean to compare the
result of 'memcmp' instead?
        if (memcmp(&priv->xor, &zero, sizeof(priv->xor) ||
            ^
                                                       )
net/netfilter/nft_bitwise.c:138:32: note: explicitly cast the argument
to size_t to silence this warning
        if (memcmp(&priv->xor, &zero, sizeof(priv->xor) ||
                                      ^
                                      (size_t)(
1 error generated.

Adjust the parentheses so that the result of the sizeof is used for the
size argument in memcmp, rather than the result of the comparison (which
would always be true because sizeof is a non-zero number).

Fixes: bd8699e9e292 ("netfilter: nft_bitwise: add offload support")
Link: https://github.com/ClangBuiltLinux/linux/issues/638
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nft_bitwise.c

index 1f04ed5..9743001 100644 (file)
@@ -135,8 +135,8 @@ static int nft_bitwise_offload(struct nft_offload_ctx *ctx,
 {
        const struct nft_bitwise *priv = nft_expr_priv(expr);
 
-       if (memcmp(&priv->xor, &zero, sizeof(priv->xor) ||
-           priv->sreg != priv->dreg))
+       if (memcmp(&priv->xor, &zero, sizeof(priv->xor)) ||
+           priv->sreg != priv->dreg)
                return -EOPNOTSUPP;
 
        memcpy(&ctx->regs[priv->dreg].mask, &priv->mask, sizeof(priv->mask));