public inbox for dev@dpdk.org
 help / color / mirror / Atom feed
From: Maxime Leroy <maxime@leroys.fr>
To: dev@dpdk.org
Cc: hemant.agrawal@nxp.com, stephen@networkplumber.org,
	david.marchand@redhat.com, Maxime Leroy <maxime@leroys.fr>,
	stable@dpdk.org
Subject: [PATCH v2 08/17] net/dpaa2: fix error packet dump crash and memory leak
Date: Thu, 26 Feb 2026 15:33:32 +0100	[thread overview]
Message-ID: <20260226143341.282188-9-maxime@leroys.fr> (raw)
In-Reply-To: <20260218160453.142311-1-maxime@leroys.fr>

Fix three bugs in dump_err_pkts():

1. NULL pointer dereference: mbuf was checked for NULL but then
   dereferenced unconditionally on the next line.

2. Memory leak on multi-segment packets: the while loop walked
   mbuf to NULL, so the subsequent rte_pktmbuf_free(mbuf) was a
   no-op and the packet was never freed. Use a separate iterator
   variable and free the original mbuf pointer.

3. Segment index not reset between packets: variable i was
   initialized once at function scope and never reset inside the
   do/while loop, so hexdump titles had wrong segment numbers.
   Make it local to the multi-segment block.

Not tested, found by code review.

Fixes: 8b49427e73 ("net/dpaa2: add Rx error queue support")
Cc: stable@dpdk.org

Reported-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Maxime Leroy <maxime@leroys.fr>
---
 drivers/net/dpaa2/dpaa2_rxtx.c | 31 +++++++++++++++++--------------
 1 file changed, 17 insertions(+), 14 deletions(-)

diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.c
index 5a98f295a7..0de52cbef2 100644
--- a/drivers/net/dpaa2/dpaa2_rxtx.c
+++ b/drivers/net/dpaa2/dpaa2_rxtx.c
@@ -651,7 +651,7 @@ dump_err_pkts(struct dpaa2_queue *dpaa2_q)
 	const struct qbman_fd *fd;
 	struct qbman_pull_desc pulldesc;
 	struct rte_eth_dev_data *eth_data = dpaa2_q->eth_data;
-	uint32_t lcore_id = rte_lcore_id(), i = 0;
+	uint32_t lcore_id = rte_lcore_id();
 	void *v_addr, *hw_annot_addr;
 	struct dpaa2_fas *fas;
 	struct rte_mbuf *mbuf;
@@ -726,24 +726,27 @@ dump_err_pkts(struct dpaa2_queue *dpaa2_q)
 			DPAA2_GET_FD_OFFSET(fd), DPAA2_GET_FD_ERR(fd),
 			fas->status);
 
-		if (mbuf)
+		if (mbuf) {
 			__rte_mbuf_sanity_check(mbuf, 1);
-		if (mbuf->nb_segs > 1) {
-			while (mbuf) {
-				sprintf(title, "Payload seg[%d]", i);
-				rte_hexdump(stderr, title,
+			if (mbuf->nb_segs > 1) {
+				struct rte_mbuf *seg = mbuf;
+				int i = 0;
+
+				while (seg) {
+					sprintf(title, "Payload seg[%d]", i);
+					rte_hexdump(stderr, title,
+						(char *)seg->buf_addr + seg->data_off,
+						seg->data_len);
+					seg = seg->next;
+					i++;
+				}
+			} else {
+				rte_hexdump(stderr, "Payload",
 					(char *)mbuf->buf_addr + mbuf->data_off,
 					mbuf->data_len);
-				mbuf = mbuf->next;
-				i++;
 			}
-		} else {
-			rte_hexdump(stderr, "Payload",
-				(char *)mbuf->buf_addr + mbuf->data_off,
-				mbuf->data_len);
+			rte_pktmbuf_free(mbuf);
 		}
-
-		rte_pktmbuf_free(mbuf);
 		dq_storage++;
 		num_rx++;
 	} while (pending);
-- 
2.43.0


  parent reply	other threads:[~2026-02-26 14:35 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-18 16:04 [PATCH 00/11] net/dpaa2: fixes and improvements Maxime Leroy
2026-02-18 16:04 ` [PATCH 01/11] net/dpaa2: fix queue block memory leak on port close Maxime Leroy
2026-02-18 16:04 ` [PATCH 02/11] net/dpaa2: fix rx error queue " Maxime Leroy
2026-02-19 10:56   ` Hemant Agrawal
2026-02-19 11:01     ` Hemant Agrawal
2026-02-18 16:04 ` [PATCH 03/11] net/dpaa2: warn on rx descriptor limit only in high perf buffer mode Maxime Leroy
2026-02-19 10:58   ` Hemant Agrawal
2026-02-18 16:04 ` [PATCH 04/11] net/dpaa2: fix rx error queue leak in alloc error path Maxime Leroy
2026-02-18 16:04 ` [PATCH 05/11] net/dpaa2: fix resource leak on softparser failure Maxime Leroy
2026-02-18 16:04 ` [PATCH 06/11] net/dpaa2: add devargs to disable Rx taildrop Maxime Leroy
2026-02-19 13:41   ` Hemant Agrawal
2026-02-18 16:04 ` [PATCH 07/11] net/dpaa2: replace data stashing getenv with devargs Maxime Leroy
2026-02-19 13:44   ` Hemant Agrawal
2026-02-18 16:04 ` [PATCH 08/11] net/dpaa2: fix link not up after port stop/start Maxime Leroy
2026-02-19 13:45   ` Hemant Agrawal
2026-02-18 16:04 ` [PATCH 09/11] net/dpaa2: use CHECK_INTERVAL macro in set_link_down Maxime Leroy
2026-02-19 13:46   ` Hemant Agrawal
2026-02-18 16:04 ` [PATCH 10/11] bus/fslmc: fix devargs not propagated on hotplug Maxime Leroy
2026-02-18 16:45   ` David Marchand
2026-02-19  9:05     ` Maxime Leroy
2026-02-19 16:52       ` David Marchand
2026-02-18 16:04 ` [PATCH 11/11] bus/fslmc: remove dead blocklist check in plug path Maxime Leroy
2026-02-18 17:01   ` David Marchand
2026-02-18 17:07 ` [PATCH 00/11] net/dpaa2: fixes and improvements Stephen Hemminger
2026-02-19  9:12   ` Maxime Leroy
2026-02-18 17:21 ` Stephen Hemminger
2026-02-26 14:33 ` [PATCH v2 00/17] " Maxime Leroy
2026-02-26 19:25   ` Stephen Hemminger
2026-03-05 16:55     ` David Marchand
2026-03-05 17:57       ` Stephen Hemminger
2026-03-06  8:09         ` Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 " Maxime Leroy
2026-03-06 18:51     ` Stephen Hemminger
2026-03-09  9:45       ` Maxime Leroy
2026-03-09 10:29         ` Hemant Agrawal
2026-03-24  5:19           ` Hemant Agrawal
2026-03-25 20:45     ` [PATCH v4 " Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 01/17] net/dpaa2: fix queue block memory leak on port close Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 02/17] net/dpaa2: fix Rx error queue memory leaks Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 03/17] net/dpaa2: warn on Rx descriptor limit in high perf mode Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 04/17] net/dpaa2: fix resource leak on softparser failure Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 05/17] net/dpaa2: fix link not up after port stop/start Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 06/17] bus/fslmc: fix devargs not propagated on hotplug Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 07/17] net/dpaa2: fix spurious VLAN insertion on non-VLAN packets Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 08/17] net/dpaa2: fix error packet dump crash and memory leak Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 09/17] net/dpaa2: fix L4 packet type in slow parse path Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 10/17] net/dpaa2: fix L3/L4 checksum offload flags Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 11/17] net/dpaa2: fix software taildrop buffer access Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 12/17] net/dpaa2: fix burst mode info report Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 13/17] net/dpaa2: add SG table walk upper bound in Rx path Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 14/17] net/dpaa2: fix MAC stats DMA alloc per xstats call Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 15/17] net/dpaa2: use check interval macro in link down path Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 16/17] net/dpaa2: add devargs to disable Rx taildrop Maxime Leroy
2026-03-25 20:45       ` [PATCH v4 17/17] net/dpaa2: add devargs alternative for data stashing getenv Maxime Leroy
2026-03-26 22:42       ` [PATCH v4 00/17] net/dpaa2: fixes and improvements Stephen Hemminger
2026-03-06 13:30   ` [PATCH v3 01/17] net/dpaa2: fix queue block memory leak on port close Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 02/17] net/dpaa2: fix Rx error queue memory leaks Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 03/17] net/dpaa2: warn on Rx descriptor limit in high perf mode Maxime Leroy
2026-03-12  9:27     ` Hemant Agrawal
2026-03-18 15:17       ` Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 04/17] net/dpaa2: fix resource leak on softparser failure Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 05/17] net/dpaa2: fix link not up after port stop/start Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 06/17] bus/fslmc: fix devargs not propagated on hotplug Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 07/17] net/dpaa2: fix spurious VLAN insertion on non-VLAN packets Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 08/17] net/dpaa2: fix error packet dump crash and memory leak Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 09/17] net/dpaa2: fix L4 packet type in slow parse path Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 10/17] net/dpaa2: fix L3/L4 checksum offload flags Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 11/17] net/dpaa2: fix software taildrop buffer access Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 12/17] net/dpaa2: fix burst mode info report Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 13/17] net/dpaa2: add SG table walk upper bound in Rx path Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 14/17] net/dpaa2: fix MAC stats DMA alloc per xstats call Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 15/17] net/dpaa2: use check interval macro in link down path Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 16/17] net/dpaa2: add devargs to disable Rx taildrop Maxime Leroy
2026-03-06 13:30   ` [PATCH v3 17/17] net/dpaa2: add devargs alternative for data stashing getenv Maxime Leroy
2026-03-06 17:48     ` Stephen Hemminger
2026-02-26 14:33 ` [PATCH v2 01/17] net/dpaa2: fix queue block memory leak on port close Maxime Leroy
2026-02-26 14:33 ` [PATCH v2 02/17] net/dpaa2: fix rx error queue memory leaks Maxime Leroy
2026-02-26 14:33 ` [PATCH v2 03/17] net/dpaa2: warn on rx descriptor limit only in high perf buffer mode Maxime Leroy
2026-02-26 19:24   ` Stephen Hemminger
2026-02-26 14:33 ` [PATCH v2 04/17] net/dpaa2: fix resource leak on softparser failure Maxime Leroy
2026-02-26 14:33 ` [PATCH v2 05/17] net/dpaa2: fix link not up after port stop/start Maxime Leroy
2026-02-26 14:33 ` [PATCH v2 06/17] bus/fslmc: fix devargs not propagated on hotplug Maxime Leroy
2026-02-26 14:33 ` [PATCH v2 07/17] net/dpaa2: fix spurious VLAN insertion on non-VLAN packets Maxime Leroy
2026-02-26 14:33 ` Maxime Leroy [this message]
2026-02-26 19:23   ` [PATCH v2 08/17] net/dpaa2: fix error packet dump crash and memory leak Stephen Hemminger
2026-02-26 14:33 ` [PATCH v2 09/17] net/dpaa2: fix L4 packet type classification in slow parse path Maxime Leroy
2026-02-26 14:33 ` [PATCH v2 10/17] net/dpaa2: fix L3/L4 checksum offload flags Maxime Leroy
2026-02-26 14:33 ` [PATCH v2 11/17] net/dpaa2: fix software taildrop buffer access Maxime Leroy
2026-02-26 19:21   ` Stephen Hemminger
2026-02-27  9:23     ` David Marchand
2026-02-27 21:29       ` Morten Brørup
2026-03-06 17:35         ` Stephen Hemminger
2026-02-26 14:33 ` [PATCH v2 12/17] net/dpaa2: fix burst mode info to report active burst function Maxime Leroy
2026-02-26 14:33 ` [PATCH v2 13/17] net/dpaa2: add SG table walk upper bound in Rx path Maxime Leroy
2026-02-26 14:33 ` [PATCH v2 14/17] net/dpaa2: fix MAC stats DMA buffer allocation per xstats call Maxime Leroy
2026-02-26 14:33 ` [PATCH v2 15/17] net/dpaa2: use CHECK_INTERVAL macro in set_link_down Maxime Leroy
2026-02-26 14:33 ` [PATCH v2 16/17] net/dpaa2: add devargs to disable Rx taildrop Maxime Leroy
2026-02-26 14:33 ` [PATCH v2 17/17] net/dpaa2: add devargs alternative for data stashing getenv Maxime Leroy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260226143341.282188-9-maxime@leroys.fr \
    --to=maxime@leroys.fr \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=hemant.agrawal@nxp.com \
    --cc=stable@dpdk.org \
    --cc=stephen@networkplumber.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox