The nfp_net_flow_merge_ipv6() function contains two blocks: the first
iterates over ipv6->src_ipv6_mask, and the second over ipv6->src_ipv6.
However, in the first block, ipv6->src_ipv6 is passed as an argument
to sizeof() instead of ipv6->src_ipv6_mask.
Fixing this by replacing ipv6->src_ipv6 with ipv6->src_ipv6_mask.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Fixes: 9f27cb8892 ("net/nfp: support IPv6 flow item")
Cc: [email protected]
Signed-off-by: Alexey Simakov <[email protected]>
Signed-off-by: Mark Bulatov <[email protected]>
---
.mailmap | 1 +
drivers/net/nfp/nfp_net_flow.c | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/.mailmap b/.mailmap
index 9db000bb6b..6177ca8b1e 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1057,6 +1057,7 @@ Mariusz Drost <[email protected]>
Mark Asselstine <[email protected]>
Mark Blasko <[email protected]>
Mark Bloch <[email protected]> <[email protected]>
+Mark Bulatov <[email protected]>
Mark Gillott <[email protected]>
Mark Kavanagh <[email protected]>
Mark Smith <[email protected]>
diff --git a/drivers/net/nfp/nfp_net_flow.c b/drivers/net/nfp/nfp_net_flow.c
index 0e5003ebe3..80b4db1f4f 100644
--- a/drivers/net/nfp/nfp_net_flow.c
+++ b/drivers/net/nfp/nfp_net_flow.c
@@ -296,7 +296,7 @@ nfp_net_flow_merge_ipv6(struct rte_flow *nfp_flow,
ipv6 = (struct nfp_net_cmsg_match_v6 *)nfp_flow->payload.match_data;
ipv6->l4_protocol_mask = mask->hdr.proto;
- for (i = 0; i < sizeof(ipv6->src_ipv6); i += 4) {
+ for (i = 0; i < sizeof(ipv6->src_ipv6_mask); i += 4) {
ipv6->src_ipv6_mask[i] = mask->hdr.src_addr.a[i + 3];
ipv6->src_ipv6_mask[i + 1] = mask->hdr.src_addr.a[i + 2];
ipv6->src_ipv6_mask[i + 2] = mask->hdr.src_addr.a[i + 1];
--
2.39.5