From: khaalid <khaliidca...@gmail.com>

It was forgotten to free mempath entirely.

Signed-off-by: Khalid Ali <khaliidca...@gmail.com>
---
 grub-core/loader/efi/linux.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c
index b45a3cc61..7c7db3e3a 100644
--- a/grub-core/loader/efi/linux.c
+++ b/grub-core/loader/efi/linux.c
@@ -212,8 +212,11 @@ grub_arch_efi_linux_boot_image (grub_addr_t addr, 
grub_size_t size, char *args)
                          (grub_efi_device_path_t *) mempath,
                          (void *) addr, size, &image_handle);
   if (status != GRUB_EFI_SUCCESS)
+  {
+    grub_free(mempath);
     return grub_error (GRUB_ERR_BAD_OS, "cannot load image 0x%lx", status);
-
+  }
+    
   grub_dprintf ("linux", "linux command line: '%s'\n", args);
 
   /* Convert command line to UTF-16. */
@@ -228,7 +231,10 @@ grub_arch_efi_linux_boot_image (grub_addr_t addr, 
grub_size_t size, char *args)
   loaded_image->load_options =
     grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES (len));
   if (!loaded_image->load_options)
+  {
+    grub_free(mempath);
     return grub_errno;
+  }
 
   loaded_image->load_options_size =
     2 * grub_utf8_to_utf16 (loaded_image->load_options, len,
@@ -242,6 +248,7 @@ grub_arch_efi_linux_boot_image (grub_addr_t addr, 
grub_size_t size, char *args)
   grub_efi_free_pages ((grub_addr_t) loaded_image->load_options,
                       GRUB_EFI_BYTES_TO_PAGES (len));
   loaded_image->load_options = NULL;
+  grub_free(mempath);
 unload:
   b->unload_image (image_handle);
 
-- 
2.49.0


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

Reply via email to