From 6d3cac6f3a6e977e9330c9c06514a372ade170a2 Mon Sep 17 00:00:00 2001 From: Emekcan Date: Wed, 2 Nov 2022 09:58:27 +0000 Subject: [PATCH] smm_gateway: add checks for null attributes As par EDK-2 and EDK-2 test code, setVariable() with 0 attributes means a delete variable request. Currently, smm gatway doesn't handle this scenario. This commit adds that support. Upstream-Status: Pending Signed-off-by: Emekcan Aras --- components/service/smm_variable/backend/uefi_variable_store.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/service/smm_variable/backend/uefi_variable_store.c b/components/service/smm_variable/backend/uefi_variable_store.c index 6c3b9ed8..a691dc5d 100644 --- a/components/service/smm_variable/backend/uefi_variable_store.c +++ b/components/service/smm_variable/backend/uefi_variable_store.c @@ -202,9 +202,9 @@ efi_status_t uefi_variable_store_set_variable( if (info->is_variable_set) { /* It's a request to update to an existing variable */ - if (!(var->Attributes & + if (!(var->Attributes) || (!(var->Attributes & (EFI_VARIABLE_APPEND_WRITE | EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS_MASK)) && - !var->DataSize) { + !var->DataSize)) { /* It's a remove operation - for a remove, the variable * data must be removed from the storage backend before -- 2.17.1