[PATCH] net/enic: fix potential null dereference in flow mask check
Alexey Simakov
bigalex934 at gmail.com
Tue Jul 7 10:58:31 CEST 2026
The functions enic_copy_item_ipv4_v1(), enic_copy_item_udp_v1(), and
enic_copy_item_tcp_v1() each initialize a local 'mask' variable from
item->mask and substitute it with a hardcoded mask if NULL. However,
the subsequent mask_exact_match() call uses item->mask directly
instead of the local 'mask' variable, which will dereference NULL
when item->mask is NULL.
Use the local 'mask' variable (which has been validated and possibly
substituted) instead of item->mask.
Fixes: aa3d2ff82198 ("net/enic: flow API for Legacy NICs")
Cc: stable at dpdk.org
Signed-off-by: Alexey Simakov <bigalex934 at gmail.com>
---
.mailmap | 1 +
drivers/net/enic/enic_flow.c | 6 +++---
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/.mailmap b/.mailmap
index 4b5eb0c841..b154cd25a9 100644
--- a/.mailmap
+++ b/.mailmap
@@ -71,6 +71,7 @@ Alexander Skorichenko <askorichenko at netgate.com>
Alexander Solganik <solganik at gmail.com>
Alexander V Gutkin <alexander.v.gutkin at intel.com>
Alexandre Ferrieux <alexandre.ferrieux at orange.com>
+Alexey Simakov <bigalex934 at gmail.com>
Alexey Kardashevskiy <aik at ozlabs.ru>
Alfredo Cardigliano <cardigliano at ntop.org>
Ali Alnubani <alialnu at nvidia.com> <alialnu at mellanox.com>
diff --git a/drivers/net/enic/enic_flow.c b/drivers/net/enic/enic_flow.c
index 758000ea21..539b0eb725 100644
--- a/drivers/net/enic/enic_flow.c
+++ b/drivers/net/enic/enic_flow.c
@@ -407,7 +407,7 @@ enic_copy_item_ipv4_v1(struct copy_item_args *arg)
/* check that the supplied mask exactly matches capability */
if (!mask_exact_match((const uint8_t *)&supported_mask,
- (const uint8_t *)item->mask, sizeof(*mask))) {
+ (const uint8_t *)mask, sizeof(*mask))) {
ENICPMD_LOG(ERR, "IPv4 exact match mask");
return ENOTSUP;
}
@@ -445,7 +445,7 @@ enic_copy_item_udp_v1(struct copy_item_args *arg)
/* check that the supplied mask exactly matches capability */
if (!mask_exact_match((const uint8_t *)&supported_mask,
- (const uint8_t *)item->mask, sizeof(*mask))) {
+ (const uint8_t *)mask, sizeof(*mask))) {
ENICPMD_LOG(ERR, "UDP exact match mask");
return ENOTSUP;
}
@@ -484,7 +484,7 @@ enic_copy_item_tcp_v1(struct copy_item_args *arg)
/* check that the supplied mask exactly matches capability */
if (!mask_exact_match((const uint8_t *)&supported_mask,
- (const uint8_t *)item->mask, sizeof(*mask))) {
+ (const uint8_t *)mask, sizeof(*mask))) {
ENICPMD_LOG(ERR, "TCP exact match mask");
return ENOTSUP;
}
--
2.34.1
More information about the stable
mailing list