From e69c679fd99e56656fc4d8ed5beddcbac453c6da Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Wed, 22 Jul 2015 15:28:47 +0200 Subject: [PATCH] Cast to quint64 early enough to not lose precision. --- src/plugins/libparted/libpartedbackend.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/libparted/libpartedbackend.cpp b/src/plugins/libparted/libpartedbackend.cpp index 5c629b8..8f074e6 100644 --- a/src/plugins/libparted/libpartedbackend.cpp +++ b/src/plugins/libparted/libpartedbackend.cpp @@ -143,7 +143,9 @@ static quint64 lastUsableSector(const Device& d) PedDevice* pedDevice = ped_device_get(d.deviceNode().toLatin1().constData()); PedDisk* pedDisk = pedDevice ? ped_disk_new(pedDevice) : NULL; - quint64 rval = pedDisk->dev->bios_geom.sectors * pedDisk->dev->bios_geom.heads * pedDisk->dev->bios_geom.cylinders - 1; + quint64 rval = static_cast< quint64 >( pedDisk->dev->bios_geom.sectors ) * + pedDisk->dev->bios_geom.heads * + pedDisk->dev->bios_geom.cylinders - 1; if (pedDisk && strcmp(pedDisk->type->name, "gpt") == 0) { GPTDiskData* gpt_disk_data = reinterpret_cast(pedDisk->disk_specific);