Adding a failure check in grub_calloc(). If grub_calloc fails,
(e.g., due to memory allocation failure), it returns NULL. 
Then, using grub_efiemu_elfsyms (which would be NULL)
later will result in a null pointer dereference,
and can cause an undefined behavior.

Signed-off-by: Avnish Chouhan <[email protected]>
---
 grub-core/efiemu/loadcore.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/grub-core/efiemu/loadcore.c b/grub-core/efiemu/loadcore.c
index 2b92462..5a6d244 100644
--- a/grub-core/efiemu/loadcore.c
+++ b/grub-core/efiemu/loadcore.c
@@ -203,6 +203,9 @@ grub_efiemu_count_symbols (const Elf_Ehdr *e)
   grub_efiemu_elfsyms = (struct grub_efiemu_elf_sym *)
     grub_calloc (grub_efiemu_nelfsyms, sizeof (struct grub_efiemu_elf_sym));
 
+  if (grub_efiemu_elfsyms == NULL)
+    return grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory"));
+
   /* Relocators */
   for (i = 0, s = (Elf_Shdr *) ((char *) e + e->e_shoff);
        i < e->e_shnum;
-- 
2.46.0


_______________________________________________
Grub-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to