From e6f3a6ecc396a71f78f8a2ea814e3b31d64475cd Mon Sep 17 00:00:00 2001 From: Lans Zhang Date: Wed, 9 Aug 2017 16:10:14 +0800 Subject: [PATCH] fallback: fix double free of dp If the boot option recorded in csv is not in a media device path, the corresponding full device path will be referred for creating the boot variable. However, the current code logic always frees the full device path (full_device_path) and the media device path (dp) separately. In order to resolve this issue, always check whether dp equals to full_device_path before freeing dp. Signed-off-by: Lans Zhang --- fallback.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fallback.c b/fallback.c index 9b64077..2ef1b86 100644 --- a/fallback.c +++ b/fallback.c @@ -482,7 +482,7 @@ add_to_boot_list(CHAR16 *dirname, CHAR16 *filename, CHAR16 *label, CHAR16 *argum err: if (full_device_path) FreePool(full_device_path); - if (dp) + if (dp && dp != full_device_path) FreePool(dp); if (fullpath) FreePool(fullpath);