diff --git a/drivers/filesystems/fastfat/fat.c b/drivers/filesystems/fastfat/fat.c index 591e60b4fd9..b6e62c68fcc 100644 --- a/drivers/filesystems/fastfat/fat.c +++ b/drivers/filesystems/fastfat/fat.c @@ -36,7 +36,7 @@ FAT32GetNextCluster( PVOID BaseAddress; ULONG FATOffset; ULONG ChunkSize; - PVOID Context; + PVOID Context = NULL; LARGE_INTEGER Offset; ChunkSize = CACHEPAGESIZE(DeviceExt); @@ -44,7 +44,11 @@ FAT32GetNextCluster( Offset.QuadPart = ROUND_DOWN(FATOffset, ChunkSize); _SEH2_TRY { - CcMapData(DeviceExt->FATFileObject, &Offset, ChunkSize, MAP_WAIT, &Context, &BaseAddress); + if (!CcMapData(DeviceExt->FATFileObject, &Offset, ChunkSize, MAP_WAIT, &Context, &BaseAddress)) + { + NT_ASSERT(FALSE); + return STATUS_UNSUCCESSFUL; + } } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { diff --git a/ntoskrnl/cc/pin.c b/ntoskrnl/cc/pin.c index c48f1068042..3d80befb660 100644 --- a/ntoskrnl/cc/pin.c +++ b/ntoskrnl/cc/pin.c @@ -376,7 +376,6 @@ CcMapData ( CCTRACE(CC_API_DEBUG, "FileObject=%p FileOffset=%p Length=%lu Flags=0x%lx -> FALSE\n", SharedCacheMap->FileObject, FileOffset, Length, Flags); ExRaiseStatus(Status); - return FALSE; } iBcb = CcpGetAppropriateBcb(SharedCacheMap, Vacb, FileOffset, Length, 0, FALSE); @@ -385,7 +384,8 @@ CcMapData ( CcRosReleaseVacb(SharedCacheMap, Vacb, FALSE, FALSE); CCTRACE(CC_API_DEBUG, "FileObject=%p FileOffset=%p Length=%lu Flags=0x%lx -> FALSE\n", SharedCacheMap->FileObject, FileOffset, Length, Flags); - return FALSE; + *pBcb = NULL; // If you ever remove this for compat, make sure to review all callers for using an unititialized value + ExRaiseStatus(STATUS_INSUFFICIENT_RESOURCES); } } else