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 1f04ed5c518c724b92d6b33972655b08010d0140..974300178fa9064898d74827a901de2efc81c608 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));