Blob Blame History Raw
From 9c96e621e9abb0649118d2e1731a09b1fa139579 Mon Sep 17 00:00:00 2001
From: Vojtech Trefny <vtrefny@redhat.com>
Date: Wed, 19 Apr 2023 09:50:38 +0200
Subject: [PATCH] part: Fix segfault when adding a partition too big for MSDOS

Resolves: rhbz#2185564
---
 src/plugins/part.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/plugins/part.c b/src/plugins/part.c
index 8b2285f5..28e20c28 100644
--- a/src/plugins/part.c
+++ b/src/plugins/part.c
@@ -841,6 +841,14 @@ static gboolean resize_part (PedPartition *part, PedDevice *dev, PedDisk *disk,
         constr = ped_constraint_any (dev);
 
     geom = ped_disk_get_max_partition_geometry (disk, part, constr);
+    if (!geom) {
+        set_parted_error (error, BD_PART_ERROR_FAIL);
+        g_prefix_error (error, "Failed to create geometry for partition on device '%s'", dev->path);
+        ped_constraint_destroy (constr);
+        finish_alignment_constraint (disk, orig_flag_state);
+        return FALSE;
+    }
+
     if (!ped_geometry_set_start (geom, start)) {
         set_parted_error (error, BD_PART_ERROR_FAIL);
         g_prefix_error (error, "Failed to set partition start on device '%s'", dev->path);
-- 
2.40.1