]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Library/VarCheckLib/VarCheckLib.c
MdeModulePkg/Library/VarCheckLib: Allow SetVariable from SMM
[mirror_edk2.git] / MdeModulePkg / Library / VarCheckLib / VarCheckLib.c
index 470d782444bf067d3cb8c6769be849e5b5260a6e..9596d760e9455c043eb4e1ec9e3fb80d65d5914c 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Implementation functions and structures for var check services.\r
 \r
-Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>\r
 SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
@@ -655,6 +655,13 @@ VarCheckLibSetVariableCheck (
                DataSize,\r
                Data\r
                );\r
+    if (Status == EFI_WRITE_PROTECTED && RequestSource == VarCheckFromTrusted) {\r
+      //\r
+      // If RequestSource is trusted, then allow variable to be set even if it\r
+      // is write protected.\r
+      //\r
+      continue;\r
+    }\r
     if (EFI_ERROR (Status)) {\r
       DEBUG ((EFI_D_INFO, "Variable Check handler fail %r - %g:%s\n", Status, VendorGuid, VariableName));\r
       return Status;\r