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 <xypron.glpk@gmx.de>
This commit is contained in:
Heinrich Schuchardt 2019-09-26 21:40:18 +02:00
parent dac51e9aaf
commit 709292a63a

View file

@ -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;
}