From: Heinrich Schuchardt Date: Wed, 12 Jun 2019 21:28:42 +0000 (+0200) Subject: efi_loader: parameter checks SetVariable() X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=c77d8e9d893ea06082e3ea0f609895b306db1623;p=project%2Fbcm63xx%2Fu-boot.git efi_loader: parameter checks SetVariable() Return EFI_INVALID_PARAMETER if the variable name has zero length or the variable has runtime access but not boottime access. Signed-off-by: Heinrich Schuchardt --- diff --git a/lib/efi_loader/efi_variable.c b/lib/efi_loader/efi_variable.c index e56053194d..1d1b23b0e5 100644 --- a/lib/efi_loader/efi_variable.c +++ b/lib/efi_loader/efi_variable.c @@ -430,7 +430,9 @@ efi_status_t EFIAPI efi_set_variable(u16 *variable_name, data_size, data); /* TODO: implement APPEND_WRITE */ - if (!variable_name || !vendor || + if (!variable_name || !*variable_name || !vendor || + ((attributes & EFI_VARIABLE_RUNTIME_ACCESS) && + !(attributes & EFI_VARIABLE_BOOTSERVICE_ACCESS)) || (attributes & EFI_VARIABLE_APPEND_WRITE)) { ret = EFI_INVALID_PARAMETER; goto out;