diff --git a/Library/OcApfsLib/OcApfsIo.c b/Library/OcApfsLib/OcApfsIo.c index 393349e6..9c1b4271 100644 --- a/Library/OcApfsLib/OcApfsIo.c +++ b/Library/OcApfsLib/OcApfsIo.c @@ -224,7 +224,8 @@ ApfsReadDriver ( &Lba ); - if (OcOverflowMulUN (JumpStart->RecordExtents[Index].BlockCount, PrivateData->ApfsBlockSize, &ChunkSize) + if (JumpStart->RecordExtents[Index].BlockCount > MAX_UINTN + || OcOverflowMulUN ((UINTN) JumpStart->RecordExtents[Index].BlockCount, PrivateData->ApfsBlockSize, &ChunkSize) || ChunkSize > EfiFileSize) { FreePool (EfiFile); return EFI_SECURITY_VIOLATION;