projects
/
platform
/
kernel
/
linux-starfive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval()
[platform/kernel/linux-starfive.git]
/
net
/
netfilter
/
nft_byteorder.c
diff --git
a/net/netfilter/nft_byteorder.c
b/net/netfilter/nft_byteorder.c
index
e596d1a
..
f6e791a
100644
(file)
--- a/
net/netfilter/nft_byteorder.c
+++ b/
net/netfilter/nft_byteorder.c
@@
-38,13
+38,14
@@
void nft_byteorder_eval(const struct nft_expr *expr,
switch (priv->size) {
case 8: {
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]);
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(&dst
64
[i],
be64_to_cpu((__force __be64)src64));
}
break;
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]));
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(&dst
64
[i], src64);
}
break;
}
}
break;
}