diff --git a/src/add-ons/kernel/file_systems/ext2/Volume.cpp b/src/add-ons/kernel/file_systems/ext2/Volume.cpp index 7727c1f901..dff0520458 100644 --- a/src/add-ons/kernel/file_systems/ext2/Volume.cpp +++ b/src/add-ons/kernel/file_systems/ext2/Volume.cpp @@ -233,8 +233,10 @@ Volume::Mount(const char* deviceName, uint32 flags) status = opener.GetSize(&diskSize); if (status != B_OK) return status; - if (diskSize < ((off_t)NumBlocks() << BlockShift())) + if ((diskSize + fBlockSize) <= ((off_t)NumBlocks() << BlockShift())) { + FATAL("diskSize is too small for the number of blocks!\n"); return B_BAD_VALUE; + } fBlockCache = opener.InitCache(NumBlocks(), fBlockSize); if (fBlockCache == NULL)