diff options
author | Ilias Apalodimas <ilias.apalodimas@linaro.org> | 2021-05-10 21:19:14 +0300 |
---|---|---|
committer | Heinrich Schuchardt <xypron.glpk@gmx.de> | 2021-05-18 12:36:13 +0200 |
commit | 97f446a8ff7ccefc1eb27c48c2e64d36dc8bd8e6 (patch) | |
tree | e1c975ca8bc8a3f3d6c1ae2b906c5ea829a689bc /lib | |
parent | b76edf6b0753ada33d1ae486c621f5284d034055 (diff) | |
download | u-boot-97f446a8ff7ccefc1eb27c48c2e64d36dc8bd8e6.tar.gz u-boot-97f446a8ff7ccefc1eb27c48c2e64d36dc8bd8e6.tar.bz2 u-boot-97f446a8ff7ccefc1eb27c48c2e64d36dc8bd8e6.zip |
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>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/efi_loader/efi_tcg2.c | 8 |
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; |