]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Library/EdkFvbServiceLib/x64/Fvb.c
Add more check for index whether exceed maximum value of fv count.
[mirror_edk2.git] / EdkModulePkg / Library / EdkFvbServiceLib / x64 / Fvb.c
index 76ddfa80d42834cbffefecd9943f171ba353cc93..4dcb81d2161c4b8b3a9776604db2d4c21abafcb4 100644 (file)
@@ -35,9 +35,9 @@ Key:
 // Lib will ASSERT if more FVB devices than this are added to the system.\r
 //\r
 STATIC FVB_ENTRY          *mFvbEntry;\r
-STATIC EFI_EVENT          mFvbVirtualNotifyEvent;\r
+// STATIC EFI_EVENT          mFvbVirtualNotifyEvent;\r
 STATIC EFI_EVENT          mFvbRegistration;\r
-STATIC EFI_EVENT          mEfiFvbVirtualNotifyEvent;\r
+// STATIC EFI_EVENT          mEfiFvbVirtualNotifyEvent;\r
 STATIC BOOLEAN            mEfiFvbInitialized        = FALSE;\r
 STATIC UINTN              mFvbCount;\r
 \r
@@ -102,7 +102,8 @@ Returns:
       //\r
       // Use the next free slot for a new entry\r
       //\r
-      UpdateIndex                   = mFvbCount++;;\r
+      UpdateIndex                   = mFvbCount++;\r
+                       ASSERT (UpdateIndex < MAX_FVB_COUNT);      \r
       mFvbEntry[UpdateIndex].Handle = Handle;\r
     }\r
     //\r
@@ -113,10 +114,10 @@ Returns:
     //\r
     //  Get the interface pointer and if it's ours, skip it\r
     //\r
-    Status = gBS->HandleProtocol (Handle, &gEfiFirmwareVolumeBlockProtocolGuid, &mFvbEntry[UpdateIndex].Fvb);\r
+    Status = gBS->HandleProtocol (Handle, &gEfiFirmwareVolumeBlockProtocolGuid, (VOID **)&mFvbEntry[UpdateIndex].Fvb);\r
     ASSERT_EFI_ERROR (Status);\r
 \r
-    Status = gBS->HandleProtocol (Handle, &gEfiFvbExtensionProtocolGuid, &mFvbEntry[UpdateIndex].FvbExtension);\r
+    Status = gBS->HandleProtocol (Handle, &gEfiFvbExtensionProtocolGuid, (VOID **)&mFvbEntry[UpdateIndex].FvbExtension);\r
     if (Status != EFI_SUCCESS) {\r
       mFvbEntry[UpdateIndex].FvbExtension = NULL;\r
     }\r