[PATCH v2] bootstd: Fix a memory leak in the efi manager bootflow
Ilias Apalodimas
ilias.apalodimas at linaro.org
Thu Dec 7 13:36:36 CET 2023
efi_get_var() allocates memory which has to be freed after the value of
the variable is consumed. Free the memory properly
Fixes: f2bfa0cb1794 ("bootstd: Make efi_mgr bootmeth work for non-sandbox setups")
Signed-off-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
---
Apologies for the quick resend but the previous patches wasn't compiling due to
the missing #include <malloc.h>
Changes since v1
- Add #include <malloc.h> since it's needed for free()
boot/bootmeth_efi_mgr.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/boot/bootmeth_efi_mgr.c b/boot/bootmeth_efi_mgr.c
index e6c42d41fb80..6428c096d7f8 100644
--- a/boot/bootmeth_efi_mgr.c
+++ b/boot/bootmeth_efi_mgr.c
@@ -16,6 +16,7 @@
#include <dm.h>
#include <efi_loader.h>
#include <efi_variable.h>
+#include <malloc.h>
/**
* struct efi_mgr_priv - private info for the efi-mgr driver
@@ -65,6 +66,7 @@ static int efi_mgr_read_bootflow(struct udevice *dev, struct bootflow *bflow)
bootorder = efi_get_var(u"BootOrder", &efi_global_variable_guid,
&size);
if (bootorder) {
+ free(bootorder);
bflow->state = BOOTFLOWST_READY;
return 0;
}
--
2.40.1
More information about the U-Boot
mailing list