From c4bb654916f4e4cd3480fc04918bd71b2dda4fac Mon Sep 17 00:00:00 2001 From: Teo Mrnjavac Date: Wed, 22 Jul 2015 15:36:55 +0200 Subject: [PATCH] Do not dereference before null check. --- src/plugins/libparted/libpartedbackend.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/plugins/libparted/libpartedbackend.cpp b/src/plugins/libparted/libpartedbackend.cpp index 8f074e6..4433b38 100644 --- a/src/plugins/libparted/libpartedbackend.cpp +++ b/src/plugins/libparted/libpartedbackend.cpp @@ -117,9 +117,11 @@ typedef struct _GPTDiskData GPTDiskData; static quint64 firstUsableSector(const Device& d) { PedDevice* pedDevice = ped_device_get(d.deviceNode().toLatin1().constData()); - PedDisk* pedDisk = pedDevice ? ped_disk_new(pedDevice) : NULL; + PedDisk* pedDisk = pedDevice ? ped_disk_new(pedDevice) : nullptr; - quint64 rval = pedDisk->dev->bios_geom.sectors; + quint64 rval = 0; + if (pedDisk) + rval = pedDisk->dev->bios_geom.sectors; if (pedDisk && strcmp(pedDisk->type->name, "gpt") == 0) { GPTDiskData* gpt_disk_data = reinterpret_cast(pedDisk->disk_specific); @@ -141,11 +143,13 @@ static quint64 firstUsableSector(const Device& d) static quint64 lastUsableSector(const Device& d) { PedDevice* pedDevice = ped_device_get(d.deviceNode().toLatin1().constData()); - PedDisk* pedDisk = pedDevice ? ped_disk_new(pedDevice) : NULL; + PedDisk* pedDisk = pedDevice ? ped_disk_new(pedDevice) : nullptr; - quint64 rval = static_cast< quint64 >( pedDisk->dev->bios_geom.sectors ) * - pedDisk->dev->bios_geom.heads * - pedDisk->dev->bios_geom.cylinders - 1; + quint64 rval = 0; + if (pedDisk) + 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);