[PATCH 1/2] net/xsc: fix resource leaks

Renyong Wan wanry at yunsilicon.com
Fri Apr 18 12:34:36 CEST 2025


Fixed the Coverity-detected issue that resource leaks.

Coverity issue: 457741
Fixes: 3d57851720d4 ("net/xsc: check null pointer dereference")

Signed-off-by: Rong Qian <qianr at yunsilicon.com>
Signed-off-by: Renyong Wan <wanry at yunsilicon.com>
---
 drivers/net/xsc/xsc_rx.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/net/xsc/xsc_rx.c b/drivers/net/xsc/xsc_rx.c
index 0100ccdcfd..65d63b94de 100644
--- a/drivers/net/xsc/xsc_rx.c
+++ b/drivers/net/xsc/xsc_rx.c
@@ -309,8 +309,11 @@ xsc_rss_qp_create(struct xsc_ethdev_priv *priv, int port_id)
 
 	for (i = 0; i < priv->num_rq; i++) {
 		rxq_data = xsc_rxq_get(priv, i);
-		if (rxq_data == NULL)
-			return -EINVAL;
+		if (rxq_data == NULL) {
+			rte_errno = EINVAL;
+			goto error;
+		}
+
 		req = (struct xsc_cmd_create_qp_request *)(&in->data[0] + entry_len * i);
 		req->input_qpn = rte_cpu_to_be_16(0); /* useless for eth */
 		req->pa_num = rte_cpu_to_be_16(pa_num);
@@ -350,8 +353,11 @@ xsc_rss_qp_create(struct xsc_ethdev_priv *priv, int port_id)
 
 	for (i = 0; i < priv->num_rq; i++) {
 		rxq_data = xsc_rxq_get(priv, i);
-		if (rxq_data == NULL)
-			return -EINVAL;
+		if (rxq_data == NULL) {
+			rte_errno = EINVAL;
+			goto error;
+		}
+
 		rxq_data->wqes = rxq_data->rq_pas->addr;
 		if (!xsc_dev_is_vf(xdev))
 			rxq_data->rq_db = (uint32_t *)((uint8_t *)xdev->bar_addr +
-- 
2.25.1


More information about the dev mailing list