X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Nt32Pkg%2FFvbServicesRuntimeDxe%2FFWBlockService.c;h=a3981f6b0f252992d0ac87758f46d3fddf3a0f33;hp=350672448fa4ed55796fdb4e246528b3848a26c5;hb=121ac757204b54316d4762840a52d618243f8d79;hpb=5547062df502d26985e47b870107c7f9f6838afb diff --git a/Nt32Pkg/FvbServicesRuntimeDxe/FWBlockService.c b/Nt32Pkg/FvbServicesRuntimeDxe/FWBlockService.c index 350672448f..a3981f6b0f 100644 --- a/Nt32Pkg/FvbServicesRuntimeDxe/FWBlockService.c +++ b/Nt32Pkg/FvbServicesRuntimeDxe/FWBlockService.c @@ -1104,10 +1104,6 @@ Returns: --*/ { - UINT16 *Ptr; - UINT16 HeaderLength; - UINT16 Checksum; - // // Verify the header revision, header signature, length // Length of FvBlock cannot be 2**64-1 @@ -1124,26 +1120,10 @@ Returns: // // Verify the header checksum // - HeaderLength = (UINT16) (FwVolHeader->HeaderLength / 2); - Ptr = (UINT16 *) FwVolHeader; - Checksum = 0; - while (HeaderLength > 0) { - Checksum = (UINT16)(Checksum + (*Ptr)); - HeaderLength--; - Ptr++; - } - - if (Checksum != 0) { + if (CalculateCheckSum16 ((UINT16 *) FwVolHeader, FwVolHeader->HeaderLength) != 0) { return EFI_NOT_FOUND; } - // - // PI specification defines the name guid of FV exists in extension header. - // - if (FwVolHeader->ExtHeaderOffset == 0) { - return EFI_NOT_FOUND; - } - return EFI_SUCCESS; } @@ -1180,7 +1160,7 @@ Returns: UINTN NumOfBlocks; EFI_PEI_HOB_POINTERS FvHob; - // + // // Get the DXE services table // DxeServices = gDS;