efi_loader: Uninstall the TCG2 protocol if logging s-crtm fails
authorIlias Apalodimas <ilias.apalodimas@linaro.org>
Mon, 10 May 2021 18:19:14 +0000 (21:19 +0300)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Tue, 18 May 2021 10:36:13 +0000 (12:36 +0200)
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>
lib/efi_loader/efi_tcg2.c

index 40c94ab..c8616bf 100644 (file)
@@ -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;