Return value of a function 'gelf_getehdr' is dereferenced
without checking for NULL, but it is usually checked for this function.

Found by RASU JSC.

Signed-off-by: Maks Mishin <maks.mishi...@gmail.com>
---
 src/readelf.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/readelf.c b/src/readelf.c
index 0e931184..f2ec358f 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -12440,6 +12440,13 @@ handle_core_item (Elf *core, const Ebl_Core_Item 
*item, const void *desc,
             field went into the high half of USEC.  */
          GElf_Ehdr ehdr_mem;
          GElf_Ehdr *ehdr = gelf_getehdr (core, &ehdr_mem);
+
+         if (ehdr == NULL)
+           {
+             error (0, 0, _("cannot read ELF header: %s"), elf_errmsg (-1));
+             return;
+           }
+
          if (likely (ehdr->e_ident[EI_DATA] == ELFDATA2MSB))
            usec >>= 32;
          else
-- 
2.30.2

Reply via email to