IsDeletion = FALSE;\r
Status = EFI_SUCCESS;\r
\r
- if (UserPhysicalPresent()) {\r
+ if (IsDeleteAuthVariable (Data, DataSize, Variable, Attributes) && UserPhysicalPresent()) {\r
//\r
// Allow the delete operation of common authenticated variable at user physical presence.\r
//\r
- if (IsDeleteAuthVariable (Data, DataSize, Variable, Attributes)) {\r
- if ((Attributes & EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS) != 0) {\r
- Status = DeleteCertsFromDb (VariableName, VendorGuid);\r
- }\r
- if (!EFI_ERROR (Status)) {\r
- Status = UpdateVariable (\r
- VariableName,\r
- VendorGuid,\r
- NULL,\r
- 0,\r
- 0,\r
- 0,\r
- 0,\r
- Variable,\r
- NULL\r
- );\r
- }\r
- return Status;\r
+ if ((Attributes & EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS) != 0) {\r
+ Status = DeleteCertsFromDb (VariableName, VendorGuid);\r
}\r
- } else {\r
- if (NeedPhysicallyPresent(VariableName, VendorGuid)) {\r
- //\r
- // This variable is protected, only physical present user could modify its value.\r
- //\r
- return EFI_SECURITY_VIOLATION;\r
+ if (!EFI_ERROR (Status)) {\r
+ Status = UpdateVariable (\r
+ VariableName,\r
+ VendorGuid,\r
+ NULL,\r
+ 0,\r
+ 0,\r
+ 0,\r
+ 0,\r
+ Variable,\r
+ NULL\r
+ );\r
}\r
+ return Status;\r
+ }\r
+\r
+ if (NeedPhysicallyPresent (VariableName, VendorGuid) && !UserPhysicalPresent()) {\r
+ //\r
+ // This variable is protected, only physical present user could modify its value.\r
+ //\r
+ return EFI_SECURITY_VIOLATION;\r
}\r
\r
//\r