From cc53801dff2ba4bc62eaa666b3b7d9401232089c Mon Sep 17 00:00:00 2001
From: Alan Modra <amodra@gmail.com>
Date: Mon, 8 Dec 2025 15:58:33 +1030
Subject: [PATCH] PR 33697, fuzzer segfault

	PR 33697
	* readelf.c (process_relocs): Don't segfault on no sections.

CVE: CVE-2025-69649
Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=66a3492ce68e1ae45b2489bd9a815c39ea5d7f66]

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

diff --git a/binutils/readelf.c b/binutils/readelf.c
index 8f188e8c3e2..8d28b1c30e4 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -9621,13 +9621,11 @@ process_relocs (Filedata * filedata)
       size_t i;
       bool found = false;
 
-      for (i = 0, section = filedata->section_headers;
-	   i < filedata->file_header.e_shnum;
-	   i++, section++)
-	{
+      section = filedata->section_headers;
+      if (section != NULL)
+	for (i = 0; i < filedata->file_header.e_shnum; i++, section++)
 	  if (display_relocations (section, filedata))
 	    found = true;
-	}
 
       if (! found)
 	{
-- 
2.35.6

