segfault in objdump.c reloc_at

Message ID Y1jY7hygm01PelCY@squeak.grove.modra.org
State Repeat Merge
Headers
Series segfault in objdump.c reloc_at |

Checks

Context Check Description
snail/binutils-gdb-check warning Git am fail log

Commit Message

Alan Modra Oct. 26, 2022, 6:51 a.m. UTC
  bfd_canonicalize_reloc returns -1L on errors.

	* objdump.c (load_specific_debug_section): Properly handle
	error return from bfd_canonicalize_reloc.
  

Patch

diff --git a/binutils/objdump.c b/binutils/objdump.c
index a4ab0dbd66c..0825e051ef6 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -4212,13 +4212,13 @@  load_specific_debug_section (enum dwarf_section_display_enum debug,
 
 	  if (reloc_size > 0)
 	    {
-	      unsigned long reloc_count;
+	      long reloc_count;
 	      arelent **relocs;
 
 	      relocs = (arelent **) xmalloc (reloc_size);
 
 	      reloc_count = bfd_canonicalize_reloc (abfd, sec, relocs, NULL);
-	      if (reloc_count == 0)
+	      if (reloc_count <= 0)
 		free (relocs);
 	      else
 		{