Merge git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-next
[platform/kernel/linux-rpi.git] / net / netfilter / nft_bitwise.c
index f590ee1..83590af 100644 (file)
@@ -30,7 +30,7 @@ static void nft_bitwise_eval_bool(u32 *dst, const u32 *src,
 {
        unsigned int i;
 
-       for (i = 0; i < DIV_ROUND_UP(priv->len, 4); i++)
+       for (i = 0; i < DIV_ROUND_UP(priv->len, sizeof(u32)); i++)
                dst[i] = (src[i] & priv->mask.data[i]) ^ priv->xor.data[i];
 }
 
@@ -109,22 +109,23 @@ static int nft_bitwise_init_bool(struct nft_bitwise *priv,
                return err;
        if (mask.type != NFT_DATA_VALUE || mask.len != priv->len) {
                err = -EINVAL;
-               goto err1;
+               goto err_mask_release;
        }
 
        err = nft_data_init(NULL, &priv->xor, sizeof(priv->xor), &xor,
                            tb[NFTA_BITWISE_XOR]);
        if (err < 0)
-               goto err1;
+               goto err_mask_release;
        if (xor.type != NFT_DATA_VALUE || xor.len != priv->len) {
                err = -EINVAL;
-               goto err2;
+               goto err_xor_release;
        }
 
        return 0;
-err2:
+
+err_xor_release:
        nft_data_release(&priv->xor, xor.type);
-err1:
+err_mask_release:
        nft_data_release(&priv->mask, mask.type);
        return err;
 }