[U-Boot] [PATCH 1/1] efi_loader: memory leak in efi_set_bootdev()
Heinrich Schuchardt
xypron.glpk at gmx.de
Sun Sep 16 05:20:21 UTC 2018
efi_set_bootdev() may be called repeatedly.
Free the memory allocated for device paths in previous calls.
Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
---
cmd/bootefi.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index 791db359f5..a890f414e8 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -630,6 +630,13 @@ void efi_set_bootdev(const char *dev, const char *devnr, const char *path)
char filename[32] = { 0 }; /* dp->str is u16[32] long */
char *s;
+ /* efi_set_bootdev is typically called repeatedly, recover memory */
+ efi_free_pool(bootefi_device_path);
+ efi_free_pool(bootefi_image_path);
+ /* If blk_get_device_part_str fails, avoid duplicate free. */
+ bootefi_device_path = NULL;
+ bootefi_image_path = NULL;
+
if (strcmp(dev, "Net")) {
struct blk_desc *desc;
disk_partition_t fs_partition;
--
2.18.0
More information about the U-Boot
mailing list