Message ID | 20200714160815.102524-1-xypron.glpk@gmx.de |
---|---|
State | Accepted |
Commit | 1a7b0f6e4ec908da1f93ea77a251429892ef0c8a |
Headers | show |
Series | [v2,1/1] efi_loader: update secure state | expand |
On Tue, Jul 14, 2020 at 06:08:15PM +0200, Heinrich Schuchardt wrote: > Update the UEFI secure state when variable 'PK' is updated in the TEE > variables implementation. > > Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de> > --- > v2: > simplify the logic for handling return codes > --- > lib/efi_loader/efi_variable_tee.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/lib/efi_loader/efi_variable_tee.c b/lib/efi_loader/efi_variable_tee.c > index 24e0663ebd..ddefa93f8f 100644 > --- a/lib/efi_loader/efi_variable_tee.c > +++ b/lib/efi_loader/efi_variable_tee.c > @@ -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; > } > -- > 2.27.0 > Just a note here this depends on [1]. With that applied Reviewed-by: Ilias Apalodimas <ilias.apalodimas at linaro.org> [1] https://lists.denx.de/pipermail/u-boot/2020-July/419473.html
diff --git a/lib/efi_loader/efi_variable_tee.c b/lib/efi_loader/efi_variable_tee.c index 24e0663ebd..ddefa93f8f 100644 --- a/lib/efi_loader/efi_variable_tee.c +++ b/lib/efi_loader/efi_variable_tee.c @@ -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; }
Update the UEFI secure state when variable 'PK' is updated in the TEE variables implementation. Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de> --- v2: simplify the logic for handling return codes --- lib/efi_loader/efi_variable_tee.c | 10 ++++++++++ 1 file changed, 10 insertions(+) -- 2.27.0