[PATCH 2/2] net/cnxk: fix overrun in dis_xqe_drop

Stephen Hemminger stephen at networkplumber.org
Tue Sep 23 06:45:29 CEST 2025


The function parse_flag expects 16 bit value for flag,
but dis_xqe_drop is a byte. Detected when LTO enabled as:

../drivers/net/cnxk/cnxk_ethdev_devargs.c:166: warning: writing 2 bytes into a region of size 1 [-Wstringop-overflow=]
  166 |         *(uint16_t *)extra_args = atoi(value);
../drivers/net/cnxk/cnxk_ethdev_devargs.c: In function ‘cnxk_ethdev_parse_devargs’:
../drivers/net/cnxk/cnxk_ethdev_devargs.c:312:17: note: destination object ‘dis_xqe_drop’ of size 1
  312 |         uint8_t dis_xqe_drop = 0;
      |                 ^

Bugzilla ID: 1790
Fixes: 0344fb5a59c2 ("net/cnxk: add option to disable XQE drop")
Cc: rbhansali at marvell.com
Cc: stable at dpdk.org

Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
 drivers/net/cnxk/cnxk_ethdev_devargs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/cnxk/cnxk_ethdev_devargs.c b/drivers/net/cnxk/cnxk_ethdev_devargs.c
index 5d774e0d70..68e6b1d190 100644
--- a/drivers/net/cnxk/cnxk_ethdev_devargs.c
+++ b/drivers/net/cnxk/cnxk_ethdev_devargs.c
@@ -309,7 +309,7 @@ cnxk_ethdev_parse_devargs(struct rte_devargs *devargs, struct cnxk_eth_dev *dev)
 	uint16_t custom_sa_act = 0;
 	uint16_t custom_inb_sa = 0;
 	struct rte_kvargs *kvlist;
-	uint8_t dis_xqe_drop = 0;
+	uint16_t dis_xqe_drop = 0;
 	uint32_t meta_buf_sz = 0;
 	uint16_t lock_rx_ctx = 0;
 	uint16_t rx_inj_ena = 0;
-- 
2.47.3



More information about the dev mailing list