From b7e59fd9875efe17514310dbba9b62d911223b52 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 17 Nov 2015 11:40:23 -0500 Subject: [PATCH] shim: fix resource leak on should_use_fallback() error path ExitBootServices() and Exit() should both clean these up anyway, but we should do the right thing nonetheless. Signed-off-by: Peter Jones --- shim.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/shim.c b/shim.c index 305aaf3..d64d15b 100644 --- a/shim.c +++ b/shim.c @@ -1270,8 +1270,8 @@ should_use_fallback(EFI_HANDLE image_handle) unsigned int pathlen = 0; CHAR16 *bootpath = NULL; EFI_FILE_IO_INTERFACE *fio = NULL; - EFI_FILE *vh; - EFI_FILE *fh; + EFI_FILE *vh = NULL; + EFI_FILE *fh = NULL; EFI_STATUS rc; int ret = 0; @@ -1322,11 +1322,13 @@ should_use_fallback(EFI_HANDLE image_handle) uefi_call_wrapper(vh->Close, 1, vh); goto error; } - uefi_call_wrapper(fh->Close, 1, fh); - uefi_call_wrapper(vh->Close, 1, vh); ret = 1; error: + if (fh) + uefi_call_wrapper(fh->Close, 1, fh); + if (vh) + uefi_call_wrapper(vh->Close, 1, vh); if (bootpath) FreePool(bootpath);