OSDN Git Service

binutils/
authorjakub <jakub>
Tue, 18 Jun 2002 14:08:55 +0000 (14:08 +0000)
committerjakub <jakub>
Tue, 18 Jun 2002 14:08:55 +0000 (14:08 +0000)
* readelf.c (get_file_header): Only read the first section header if
e_shoff is non-zero.

bfd/
* elfcode.h (elf_object_p): Sanity check eh_shoff == 0 implies
e_shnum == 0.
Only read the first section header if e_shoff is non-zero.
Don't consider e_shstrndx if there are no sections.

bfd/ChangeLog
binutils/ChangeLog
binutils/readelf.c

index 813e758..0ba7f4f 100644 (file)
@@ -1,3 +1,10 @@
+2002-06-18  Jakub Jelinek  <jakub@redhat.com>
+
+       * elfcode.h (elf_object_p): Sanity check eh_shoff == 0 implies
+       e_shnum == 0.
+       Only read the first section header if e_shoff is non-zero.
+       Don't consider e_shstrndx if there are no sections.
+
 2002-06-17  Tom Rix <trix@redhat.com>
 
        * elf32-d10v.c (elf_d10v_howto_table): Change R_D10V_10_PCREL_R,
index 26c052f..2463d81 100644 (file)
@@ -1,3 +1,8 @@
+2002-06-18  Jakub Jelinek  <jakub@redhat.com>
+
+       * readelf.c (get_file_header): Only read the first section header if
+       e_shoff is non-zero.
+
 2002-06-15  H.J. Lu  (hjl@gnu.org)
 
        * nm.c (print_size): New variable. Initialize to 0.
index 0953109..4649b9b 100644 (file)
@@ -9711,12 +9711,15 @@ get_file_header (file)
       elf_header.e_shstrndx  = BYTE_GET (ehdr64.e_shstrndx);
     }
 
-  /* There may be some extensions in the first section header.  Don't
-     bomb if we can't read it.  */
-  if (is_32bit_elf)
-    get_32bit_section_headers (file, 1);
-  else
-    get_64bit_section_headers (file, 1);
+  if (elf_header.e_shoff)
+    {
+      /* There may be some extensions in the first section header.  Don't
+        bomb if we can't read it.  */
+      if (is_32bit_elf)
+       get_32bit_section_headers (file, 1);
+      else
+       get_64bit_section_headers (file, 1);
+    }
 
   return 1;
 }