From 5a2f57ab03067f6622c19983e1e31207bd2293a6 Mon Sep 17 00:00:00 2001
From: Alan Modra <amodra@gmail.com>
Date: Mon, 8 Dec 2025 16:04:44 +1030
Subject: [PATCH] PR 33701, abort in byte_get_little_endian

	PR 33701
	* dwarf.c (process_debug_info): Set debug_info_p NULL when
	DEBUG_INFO_UNAVAILABLE.

CVE: CVE-2025-69652
Upstream-Status: Backport [https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=44b79abd0fa12e7947252eb4c6e5d16ed6033e01]

(cherry picked from commit 44b79abd0fa12e7947252eb4c6e5d16ed6033e01)
Signed-off-by: Deepak Rathore <deeratho@cisco.com>
---
 binutils/dwarf.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 2462e6540a7..0d88ea94619 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -4248,9 +4248,11 @@ process_debug_info (struct dwarf_section * section,
 	      break;
 	    }
 
-	  debug_info *debug_info_p = ((debug_information
-				       && unit < alloc_num_debug_info_entries)
-				      ? debug_information + unit : NULL);
+	  debug_info *debug_info_p = NULL;
+	  if (debug_information
+	      && num_debug_info_entries != DEBUG_INFO_UNAVAILABLE
+	      && unit < alloc_num_debug_info_entries)
+	    debug_info_p = debug_information + unit;
 
 	  assert (!debug_info_p
 		  || (debug_info_p->num_loc_offsets
-- 
2.35.6

