aboutsummaryrefslogtreecommitdiff
path: root/gnu/installer
diff options
context:
space:
mode:
authorJosselin Poiret <dev@jpoiret.xyz>2022-08-31 23:22:55 +0200
committerMathieu Othacehe <othacehe@gnu.org>2022-09-01 18:43:28 +0200
commit4989f6acff3b3fcfbd9dde3e3c2767bd2cd6d49e (patch)
tree89c8959b5c16b9b03776a579f1f0c445152f274b /gnu/installer
parentc3b1cfe76b7038f4030d7d207ffc417fed9a7ead (diff)
downloadguix-4989f6acff3b3fcfbd9dde3e3c2767bd2cd6d49e.tar.gz
guix-4989f6acff3b3fcfbd9dde3e3c2767bd2cd6d49e.zip
installer: Fix segfault on double logical partition removal.
* gnu/installer/parted.scm (auto-partition!): Avoid removing logical partitions twice. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
Diffstat (limited to 'gnu/installer')
-rw-r--r--gnu/installer/parted.scm6
1 files changed, 6 insertions, 0 deletions
diff --git a/gnu/installer/parted.scm b/gnu/installer/parted.scm
index 641a1f45e8..84fdbe24fb 100644
--- a/gnu/installer/parted.scm
+++ b/gnu/installer/parted.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019, 2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2022 Josselin Poiret <dev@jpoiret.xyz>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -983,6 +984,11 @@ exists."
(for-each
(lambda (partition)
(and (data-partition? partition)
+ ;; Do not remove logical partitions ourselves, since
+ ;; disk-remove-partition* will remove all the logical partitions
+ ;; residing on an extended partition, which would lead to a
+ ;; double-remove and ensuing SEGFAULT.
+ (not (logical-partition? partition))
(disk-remove-partition* disk partition)))
non-boot-partitions)