]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Variable/Pei/Variable.c
MdeModulePkg/Variable: Check if there is a NV Variable Storage header prior to use...
[mirror_edk2.git] / MdeModulePkg / Universal / Variable / Pei / Variable.c
index 4c8b9bbc382f58b3f10556c381aafabfcd45657e..5040f8208d2edb98803800dcb03e387c7f9c6e6d 100644 (file)
@@ -361,6 +361,15 @@ GetVariableStore (
                                                            PcdGet64 (PcdFlashNvStorageVariableBase64) : \r
                                                            PcdGet32 (PcdFlashNvStorageVariableBase)\r
                                                           );\r
+\r
+        //\r
+        // Check if the Firmware Volume is not corrupted\r
+        //\r
+        if ((FvHeader->Signature != EFI_FVH_SIGNATURE) || (!CompareGuid (&gEfiSystemNvDataFvGuid, &FvHeader->FileSystemGuid))) {\r
+          DEBUG ((EFI_D_ERROR, "Firmware Volume for Variable Store is corrupted\n"));\r
+          break;\r
+        }\r
+\r
         VariableStoreHeader = (VARIABLE_STORE_HEADER *) ((UINT8 *) FvHeader + FvHeader->HeaderLength);\r
 \r
         if (IndexTable != NULL) {\r