]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
efi_loader: update secure state
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Tue, 14 Jul 2020 06:14:08 +0000 (08:14 +0200)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Thu, 16 Jul 2020 10:37:02 +0000 (12:37 +0200)
Update the UEFI secure state when variable 'PK' is updated in the TEE
variables implementation.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
lib/efi_loader/efi_variable_tee.c

index 24e0663ebd421d23838e0d8dbb77453d2ea9c599..c0423489388a3acda86e8e01e9078a17fad8cddf 100644 (file)
@@ -557,6 +557,12 @@ efi_status_t efi_set_variable_int(u16 *variable_name, const efi_guid_t *vendor,
                var_property.maxsize = var_acc->data_size;
                ret = set_property_int(variable_name, name_size, vendor, &var_property);
        }
+
+       if (alt_ret != EFI_SUCCESS)
+               goto out;
+
+       if (!u16_strcmp(variable_name, L"PK"))
+               alt_ret = efi_init_secure_state();
 out:
        free(comm_buf);
        return alt_ret == EFI_SUCCESS ? ret : alt_ret;
@@ -716,5 +722,9 @@ efi_status_t efi_init_variables(void)
                          MM_VARIABLE_COMMUNICATE_SIZE +
                          max_payload_size;
 
+       ret = efi_init_secure_state();
+       if (ret != EFI_SUCCESS)
+               return ret;
+
        return EFI_SUCCESS;
 }