netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval()
[platform/kernel/linux-starfive.git] / net / netfilter / nft_byteorder.c
index e596d1a..f6e791a 100644 (file)
@@ -38,13 +38,14 @@ void nft_byteorder_eval(const struct nft_expr *expr,
 
        switch (priv->size) {
        case 8: {
+               u64 *dst64 = (void *)dst;
                u64 src64;
 
                switch (priv->op) {
                case NFT_BYTEORDER_NTOH:
                        for (i = 0; i < priv->len / 8; i++) {
                                src64 = nft_reg_load64(&src[i]);
-                               nft_reg_store64(&dst[i],
+                               nft_reg_store64(&dst64[i],
                                                be64_to_cpu((__force __be64)src64));
                        }
                        break;
@@ -52,7 +53,7 @@ void nft_byteorder_eval(const struct nft_expr *expr,
                        for (i = 0; i < priv->len / 8; i++) {
                                src64 = (__force __u64)
                                        cpu_to_be64(nft_reg_load64(&src[i]));
-                               nft_reg_store64(&dst[i], src64);
+                               nft_reg_store64(&dst64[i], src64);
                        }
                        break;
                }