From: Lukas Fink <lukas.fi...@gmail.com>

The pointer returned by grub_elf_file() is not checked to verify it is not
null before use. A null pointer may be returned when the given file does
not have a valid ELF header.

Fixes: https://savannah.gnu.org/bugs/?61960
Signed-off-by: Lukas Fink <lukas.fi...@gmail.com>
Signed-off-by: Glenn Washburn <developm...@efficientek.com>
---
 grub-core/commands/file.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/grub-core/commands/file.c b/grub-core/commands/file.c
index 7c13e976b505..19602d75786b 100644
--- a/grub-core/commands/file.c
+++ b/grub-core/commands/file.c
@@ -306,6 +306,8 @@ grub_cmd_file (grub_extcmd_context_t ctxt, int argc, char 
**args)
 
        elf = grub_elf_file (file, file->name);
 
+       if (elf == NULL)
+         break;
        if (elf->ehdr.ehdr32.e_type != grub_cpu_to_le16_compile_time (ET_EXEC)
            || elf->ehdr.ehdr32.e_ident[EI_DATA] != ELFDATA2LSB)
          break;
-- 
2.34.1


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to