From 44de92ae072a33a84687093cde2bcb277538c424 Mon Sep 17 00:00:00 2001 From: Marek Polacek Date: Tue, 22 Mar 2011 01:07:20 +0100 Subject: [PATCH] Don't segfault at DT_PLTREL case. --- src/ChangeLog | 4 ++++ src/readelf.c | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 6ba890fd0..66cca15d1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2011-03-22 Marek Polacek + + * readelf.c (handle_dynamic): Don't segfault at DT_PLTREL case. + 2011-03-10 Mark Wielaard * elflint.c (check_symtab): Use ebl_check_st_other_bits. diff --git a/src/readelf.c b/src/readelf.c index 956d8bd46..2e149b221 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -1445,8 +1445,10 @@ handle_dynamic (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr) printf ("%" PRId64 "\n", dyn->d_un.d_val); break; - case DT_PLTREL: - puts (ebl_dynamic_tag_name (ebl, dyn->d_un.d_val, NULL, 0)); + case DT_PLTREL:; + const char *tagname = ebl_dynamic_tag_name (ebl, dyn->d_un.d_val, + NULL, 0); + puts (tagname ?: "???"); break; case DT_FLAGS: -- 2.47.2