initrd is a pointer to a pointer and its only used place the pointed at
pointer on stack. Freeing it will this trigger memory corruption.

Fix this by actually freeing the heap buffer.

Reported-by: Claude Sonnet v4.5 <[email protected]>
Signed-off-by: Ahmad Fatoum <[email protected]>
---
 efi/payload/bootm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/efi/payload/bootm.c b/efi/payload/bootm.c
index 38bc8b23f215..f1f60e2eaa54 100644
--- a/efi/payload/bootm.c
+++ b/efi/payload/bootm.c
@@ -161,7 +161,7 @@ static int efi_load_ramdisk(struct image_data *data, void 
**initrd)
        return 0;
 
 free_mem:
-       free(initrd);
+       free(initrd_mem);
 
        return ret;
 }
-- 
2.47.3


Reply via email to