summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2023-04-06 16:58:13 +0200
committerMark Wielaard <mark@klomp.org>2023-04-14 17:25:03 +0200
commitd8d1900ace46542e0fd4e0cec8af2324166109e4 (patch)
treec007d77bb2161299825ea1a6397c8d817f1f1416
parent3daddabd5d619bc2316813a5676d9be34ad3f6ac (diff)
downloadelfutils-d8d1900ace46542e0fd4e0cec8af2324166109e4.tar.gz
readelf: Handle NULL shdr in section_name
In some error cases we want to show the section name but cannot because the section header is corrupt or NULL. Make sure the section_name always returns "???" in that case. * src/readelf.c (section_name): Check for shdr == NULL. Signed-off-by: Mark Wielaard <mark@klomp.org>
-rw-r--r--src/readelf.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/readelf.c b/src/readelf.c
index 6950204e..4a1b985d 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -1606,7 +1606,7 @@ static const char *
section_name (Ebl *ebl, GElf_Shdr *shdr)
{
size_t shstrndx;
- if (elf_getshdrstrndx (ebl->elf, &shstrndx) < 0)
+ if (shdr == NULL || elf_getshdrstrndx (ebl->elf, &shstrndx) < 0)
return "???";
return elf_strptr (ebl->elf, shstrndx, shdr->sh_name) ?: "???";
}