From e3e5ae049371a27fd1737aba946fe26d06e029b5 Mon Sep 17 00:00:00 2001
From: Nick Clifton <nickc@redhat.com>
Date: Mon, 27 Jun 2022 13:43:02 +0100
Subject: [PATCH] Replace a run-time assertion failure with a warning message
 when parsing corrupt DWARF data.

	PR 29289
	* dwarf.c (display_debug_names): Replace assert with a warning
	message.

Upstream-Status: Backport [https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e3e5ae049371a27fd1737aba946fe26d06e029b5]
CVE: CVE-2022-35205
Signed-off-by: Pgowda <pgowda.cve@gmail.com>
Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
---
 binutils/dwarf.c   | 7 ++++++-

diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 37b477b886d..b99c56987da 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -9802,7 +9802,12 @@ display_debug_names (struct dwarf_sectio
       printf (_("Out of %lu items there are %zu bucket clashes"
 		" (longest of %zu entries).\n"),
 	      (unsigned long) name_count, hash_clash_count, longest_clash);
-      assert (name_count == buckets_filled + hash_clash_count);
+
+      if (name_count != buckets_filled + hash_clash_count)
+	warn (_("The name_count (%lu) is not the same as the used bucket_count (%lu) + the hash clash count (%lu)"),
+	      (unsigned long) name_count,
+	      (unsigned long) buckets_filled,
+	      (unsigned long) hash_clash_count);
 
       struct abbrev_lookup_entry
       {
