[PATCH] efi_loader: Don't delete variable from memory if adding a new one failed
Heinrich Schuchardt
heinrich.schuchardt at canonical.com
Wed Apr 3 22:33:08 CEST 2024
On 4/3/24 17:43, Ilias Apalodimas wrote:
> From: Ilias Apalodimas <apalos at gmail.com>
>
> Our efi_var_mem_xxx() functions don't have a replace variant. Instead we
> add a new variable and delete the old instance when trying to replace a
> variable. Currently we delete the old version without checking the new
> one got added
>
> Signed-off-by: Ilias Apalodimas <apalos at gmail.com>
> ---
> lib/efi_loader/efi_variable.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/lib/efi_loader/efi_variable.c b/lib/efi_loader/efi_variable.c
> index 40f7a0fb10d5..b6e60626a260 100644
> --- a/lib/efi_loader/efi_variable.c
> +++ b/lib/efi_loader/efi_variable.c
> @@ -342,11 +342,12 @@ efi_status_t efi_set_variable_int(const u16 *variable_name,
> ret = efi_var_mem_ins(variable_name, vendor, attributes,
> data_size, data, 0, NULL, time);
> }
> - efi_var_mem_del(var);
>
> if (ret != EFI_SUCCESS)
> return ret;
>
> + efi_var_mem_del(var);
> +
> if (var_type == EFI_AUTH_VAR_PK)
> ret = efi_init_secure_state();
> else
> --
> 2.43.0
>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
More information about the U-Boot
mailing list