[U-Boot] [PATCH] efi_loader: variable: attributes may not be changed if a variable exists
Heinrich Schuchardt
xypron.glpk at gmx.de
Tue May 14 06:35:04 UTC 2019
On 5/14/19 6:57 AM, AKASHI Takahiro wrote:
> If a variable already exists, efi_set_variable() should not change
> the variable's attributes. This patch enforces it.
This behavior is mandated by UEFI spec 2.7.
Reviewed-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
>
> Signed-off-by: AKASHI Takahiro <takahiro.akashi at linaro.org>
> ---
> lib/efi_loader/efi_variable.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/lib/efi_loader/efi_variable.c b/lib/efi_loader/efi_variable.c
> index 37728c3c165d..c4f3a5d2743d 100644
> --- a/lib/efi_loader/efi_variable.c
> +++ b/lib/efi_loader/efi_variable.c
> @@ -450,6 +450,15 @@ efi_status_t EFIAPI efi_set_variable(u16 *variable_name,
> ret = EFI_WRITE_PROTECTED;
> goto out;
> }
> +
> + /*
> + * attributes won't be changed
> + * TODO: take care of APPEND_WRITE once supported
> + */
> + if (attr != attributes) {
> + ret = EFI_INVALID_PARAMETER;
> + goto out;
> + }
> }
>
> val = malloc(2 * data_size + strlen("{ro,run,boot}(blob)") + 1);
>
More information about the U-Boot
mailing list