summary refs log tree commit diff
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
parentc3b1cfe76b7038f4030d7d207ffc417fed9a7ead (diff)
downloadguix-4989f6acff3b3fcfbd9dde3e3c2767bd2cd6d49e.tar.gz
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>
-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)