summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2014-05-27 10:25:27 +0200
committerMark Wielaard <mjw@redhat.com>2014-05-27 22:00:46 +0200
commit903f334ef06fbec28d23b7c8ea3c79cacc1da14f (patch)
treed3c078fee507dc398a1900d1cf759c73f6961856
parenteb4811dee133864ebbab1a062ac14af1f3ffdc62 (diff)
downloadelfutils-903f334ef06fbec28d23b7c8ea3c79cacc1da14f.tar.gz
readelf: Skip section if name is NULL in print_debug.
Don't crash and burn when a section doesn't have a name (possibly invalid ELF file string table). Just try the next section instead of calling strcmp on NULL. Signed-off-by: Mark Wielaard <mjw@redhat.com>
-rw-r--r--src/ChangeLog4
-rw-r--r--src/readelf.c4
2 files changed, 7 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 5535cff7..7e680361 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2014-05-27 Mark Wielaard <mjw@redhat.com>
+
+ * readelf.c (print_debug): Skip section if name is NULL.
+
2014-05-26 Mark Wielaard <mjw@redhat.com>
* readelf.c (handle_relocs_rela): Print header like handle_relocs_rel
diff --git a/src/readelf.c b/src/readelf.c
index ea14a09b..6bbe436d 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -7962,8 +7962,10 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr)
/ sizeof (debug_sections[0]));
const char *name = elf_strptr (ebl->elf, shstrndx,
shdr->sh_name);
- int n;
+ if (name == NULL)
+ continue;
+ int n;
for (n = 0; n < ndebug_sections; ++n)
if (strcmp (name, debug_sections[n].name) == 0
#if USE_ZLIB