[v5,4/8] common/dpaax: fix array overrun issue

Message ID 20240710085534.2564668-5-vanshika.shukla@nxp.com (mailing list archive)
State Accepted, archived
Delegated to: David Marchand
Headers
Series DPAA specific fixes |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Vanshika Shukla July 10, 2024, 8:55 a.m. UTC
From: Apeksha Gupta <apeksha.gupta@nxp.com>

Out-of-bounds read, Overrunning dynamic array nodes at offset corresponding
to index variable j.

Fixes: 2f3d633aa593 ("common/dpaax: add library for PA/VA translation table")
Cc: stable@dpdk.org

Signed-off-by: Apeksha Gupta <apeksha.gupta@nxp.com>
Signed-off-by: Vanshika Shukla <vanshika.shukla@nxp.com>
---
 drivers/common/dpaax/dpaax_iova_table.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
  

Patch

diff --git a/drivers/common/dpaax/dpaax_iova_table.c b/drivers/common/dpaax/dpaax_iova_table.c
index d2a78f4c19..860e702333 100644
--- a/drivers/common/dpaax/dpaax_iova_table.c
+++ b/drivers/common/dpaax/dpaax_iova_table.c
@@ -139,10 +139,12 @@  read_memory_node(unsigned int *count)
 	}
 
 	DPAAX_DEBUG("Device-tree memory node data:");
-	do {
+
+	while (j > 0) {
+		--j;
 		DPAAX_DEBUG("    %08" PRIx64 " %08zu",
 			    nodes[j].addr, nodes[j].len);
-	} while (--j);
+	}
 
 cleanup:
 	close(fd);