summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlias Apalodimas <ilias.apalodimas@linaro.org>2021-05-10 21:19:14 +0300
committerHeinrich Schuchardt <xypron.glpk@gmx.de>2021-05-18 12:36:13 +0200
commit97f446a8ff7ccefc1eb27c48c2e64d36dc8bd8e6 (patch)
treee1c975ca8bc8a3f3d6c1ae2b906c5ea829a689bc
parentb76edf6b0753ada33d1ae486c621f5284d034055 (diff)
efi_loader: Uninstall the TCG2 protocol if logging s-crtm fails
Instead of just failing, clean up the installed config table and EventLog memory if logging an s-crtm event fails during the protocol installation Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Eliminate label 'out:' by using return. Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
-rw-r--r--lib/efi_loader/efi_tcg2.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/lib/efi_loader/efi_tcg2.c b/lib/efi_loader/efi_tcg2.c
index 40c94ab133..c8616bf31e 100644
--- a/lib/efi_loader/efi_tcg2.c
+++ b/lib/efi_loader/efi_tcg2.c
@@ -1103,8 +1103,7 @@ efi_status_t efi_tcg2_register(void)
ret = platform_get_tpm2_device(&dev);
if (ret != EFI_SUCCESS) {
log_warning("Unable to find TPMv2 device\n");
- ret = EFI_SUCCESS;
- goto out;
+ return EFI_SUCCESS;
}
ret = efi_init_event_log();
@@ -1113,7 +1112,7 @@ efi_status_t efi_tcg2_register(void)
ret = efi_append_scrtm_version(dev);
if (ret != EFI_SUCCESS)
- goto out;
+ goto fail;
ret = efi_add_protocol(efi_root, &efi_guid_tcg2_protocol,
(void *)&efi_tcg2_protocol);
@@ -1121,9 +1120,8 @@ efi_status_t efi_tcg2_register(void)
log_err("Cannot install EFI_TCG2_PROTOCOL\n");
goto fail;
}
-
-out:
return ret;
+
fail:
tcg2_uninit();
return ret;