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