Subject: bug#57513: closed (Re: bug#57513: [PATCH] installer: Fix segfault on double logical partition removal.)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 01 Sep 2022 16:50:02 +0000

Your bug report

#57513: [PATCH] installer: Fix segfault on double logical partition removal.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
57513: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=57513
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#57513: [PATCH] installer: Fix segfault on double logical partition removal.
From: Mathieu Othacehe <[email-masked]>
To: Josselin Poiret <[email-masked]>
Cc: [email-masked]
Date: Thu, 01 Sep 2022 18:48:51 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hey,

> * gnu/installer/parted.scm (auto-partition!): Avoid removing logical
> partitions twice.

I was able to reproduce the issue by creating an extended partition
containing a single logical partition using the manual partitioning tool
then, the automatic one right after.

It resulted in a segfault, which is fixed by your patch, that's a very
nice catch!

Pushed as 4989f6acff3b3fcfbd9dde3e3c2767bd2cd6d49e.

Thanks,

Mathieu

Subject: [PATCH] installer: Fix segfault on double logical partition removal.
From: Josselin Poiret <[email-masked]>
To: [email-masked]
Cc: Josselin Poiret <[email-masked]>
Date: Wed, 31 Aug 2022 23:22:55 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/installer/parted.scm (auto-partition!): Avoid removing logical
partitions twice.
---
 gnu/installer/parted.scm | 6 ++++++
 1 file changed, 6 insertions(+)

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 <[email-masked]>
 ;;; Copyright © 2019, 2020, 2022 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2020 Tobias Geerinckx-Rice <[email-masked]>
+;;; Copyright © 2022 Josselin Poiret <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -983,6 +984,11 @@ (define* (auto-partition! disk
     (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)

base-commit: 47c11772dfe840a536ed7ec438fe832878f51054
-- 
2.37.2