From a68a7dece464c35b1c8d20b98502b6881b103911 Mon Sep 17 00:00:00 2001 From: Lidong Chen Date: Mon, 23 Jun 2025 17:46:01 +0000 Subject: [PATCH] loader/i386/pc/linux: Fix resource leak In grub_cmd_initrd(), memory is allocated for variable initrd_ctx before calling grub_relocator_alloc_chunk_align_safe(). When the function call fails, initrd_ctx should be freed before exiting grub_cmd_initrd(). Fixes: CID 473852 Signed-off-by: Lidong Chen Reviewed-by: Sudhakar Kuppusamy Reviewed-by: Daniel Kiper --- grub-core/loader/i386/pc/linux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c index 4adeee9ae..0c2a4ae51 100644 --- a/grub-core/loader/i386/pc/linux.c +++ b/grub-core/loader/i386/pc/linux.c @@ -457,7 +457,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), err = grub_relocator_alloc_chunk_align_safe (relocator, &ch, addr_min, addr_max, size, 0x1000, GRUB_RELOCATOR_PREFERENCE_HIGH, 0); if (err) - return err; + goto fail; initrd_chunk = get_virtual_current_address (ch); initrd_addr = get_physical_target_address (ch); } -- 2.47.3