From: Heinrich Schuchardt Date: Thu, 26 Sep 2019 19:40:18 +0000 (+0200) Subject: efi_loader: appending to non-existent variable X-Git-Tag: v2020.01-rc1~37^2~7 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=709292a63afc60bc840493315acf18c6c5e27eb4;p=oweals%2Fu-boot.git efi_loader: appending to non-existent variable Appending to a non-existent variable must result in an error of type EFI_NOT_FOUND. Fixes: 09c76b79a9db ("efi_loader: SetVariable() deleting variables") Signed-off-by: Heinrich Schuchardt --- diff --git a/lib/efi_loader/efi_variable.c b/lib/efi_loader/efi_variable.c index 4c554c546b..d0daf7bdeb 100644 --- a/lib/efi_loader/efi_variable.c +++ b/lib/efi_loader/efi_variable.c @@ -478,10 +478,12 @@ efi_status_t EFIAPI efi_set_variable(u16 *variable_name, old_size = 0; } } else { - if ((data_size == 0 && - !(attributes & EFI_VARIABLE_APPEND_WRITE)) || - !attributes) { - /* delete, but nothing to do */ + if (data_size == 0 || !attributes || + (attributes & EFI_VARIABLE_APPEND_WRITE)) { + /* + * Trying to delete or to update a non-existent + * variable. + */ ret = EFI_NOT_FOUND; goto out; }