33 lines
1.2 KiB
Diff
33 lines
1.2 KiB
Diff
|
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
|
||
|
|