summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Jones <pjones@redhat.com>2015-11-09 14:33:55 -0500
committerPeter Jones <pjones@redhat.com>2015-11-17 11:40:23 -0500
commit4794822464ea0ff4073fdfd3526fd059a2c1f05e (patch)
treeffe2818adfdd5bd06dd607bbf9de9e855d6afe2c
parent7cb2179b53529b2282575926e24c400243722b39 (diff)
downloadefi-boot-shim-4794822464ea0ff4073fdfd3526fd059a2c1f05e.tar.gz
efi-boot-shim-4794822464ea0ff4073fdfd3526fd059a2c1f05e.zip
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 <pjones@redhat.com>
-rw-r--r--shim.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/shim.c b/shim.c
index 305aaf31..d64d15be 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);