From 77ebb3d6765efd927104405c014cba9829e4a6df Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 5 Apr 2018 14:09:37 -0400 Subject: [PATCH] Audit get_variable() calls for correct FreePool() use. Signed-off-by: Peter Jones --- MokManager.c | 3 ++- fallback.c | 8 ++++++-- shim.c | 2 ++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/MokManager.c b/MokManager.c index cd569b6..7e40a38 100644 --- a/MokManager.c +++ b/MokManager.c @@ -1310,7 +1310,8 @@ static EFI_STATUS delete_keys(void *MokDel, UINTN MokDelSize, BOOLEAN MokX) gRT->SetVariable(db_name, &SHIM_LOCK_GUID, EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS, 0, NULL); - return EFI_ACCESS_DENIED; + efi_status = EFI_ACCESS_DENIED; + goto error; } /* Nothing to do */ diff --git a/fallback.c b/fallback.c index 574d296..c3f5583 100644 --- a/fallback.c +++ b/fallback.c @@ -33,14 +33,16 @@ get_fallback_verbose(void) return state; } + state = 0; for (i = 0; i < dataSize; i++) { if (data[i]) { state = 1; - return state; + break; } } - state = 0; + if (data) + FreePool(data); return state; } @@ -990,6 +992,8 @@ debug_hook(void) return; } + if (data) + FreePool(data); if (x) return; diff --git a/shim.c b/shim.c index a66df76..0015534 100644 --- a/shim.c +++ b/shim.c @@ -2497,6 +2497,8 @@ debug_hook(void) return; } + FreePool(data); + console_print(L"add-symbol-file "DEBUGDIR L"shim" EFI_ARCH L".efi.debug 0x%08x -s .data 0x%08x\n", &_text, &_data);