diff options
-rw-r--r-- | libelf/ChangeLog | 4 | ||||
-rw-r--r-- | libelf/elf_strptr.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/libelf/ChangeLog b/libelf/ChangeLog index fcea8aa9..fd5518dc 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,5 +1,9 @@ 2020-05-08 Mark Wielaard <mark@klomp.org> + * elf_strptr.c (elf_strptr): Check shdr is not NULL. + +2020-05-08 Mark Wielaard <mark@klomp.org> + * elf_getdata.c (__libelf_set_rawdata_wrlock): Check __gelf_getehdr_rdlock return value. diff --git a/libelf/elf_strptr.c b/libelf/elf_strptr.c index e72a3a36..c7271707 100644 --- a/libelf/elf_strptr.c +++ b/libelf/elf_strptr.c @@ -145,7 +145,7 @@ elf_strptr (Elf *elf, size_t idx, size_t offset) else { Elf64_Shdr *shdr = strscn->shdr.e64 ?: __elf64_getshdr_rdlock (strscn); - if (unlikely (shdr->sh_type != SHT_STRTAB)) + if (unlikely (shdr == NULL || shdr->sh_type != SHT_STRTAB)) { /* This is no string section. */ __libelf_seterrno (ELF_E_INVALID_SECTION); |