From 2077b23f14bdb01492cdc481bf5898446ba939aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Thu, 24 Jan 2013 00:44:26 +0100 Subject: [PATCH] intel disk system: restrict maximum supported size. * The MBR can only address 2^32 blocks. * This prevents you from initializing a disk larger than 2TB with a block size of 512 bytes. --- src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp b/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp index 4dc6b2a3f4..f4cbb0aa1e 100644 --- a/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp +++ b/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp @@ -90,8 +90,10 @@ PartitionMapAddOn::CreatePartitionHandle(BMutablePartition* partition, bool PartitionMapAddOn::CanInitialize(const BMutablePartition* partition) { - // If it's big enough, we can initialize it. - return partition->Size() >= 2 * partition->BlockSize(); + // If it's big enough, but not too big (ie. larger than 2^32 blocks) we can + // initialize it. + return partition->Size() >= 2 * partition->BlockSize() + && partition->Size() / partition->BlockSize() < UINT32_MAX; }