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 <jia.zhang@windriver.com>
This commit is contained in:
Lans Zhang 2017-08-09 16:10:14 +08:00 committed by Peter Jones
parent 631265b7e9
commit e6f3a6ecc3

View File

@ -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);