GNU bug report logs - #34218
Partition name is not set by mkpart if compiled with --disable-debug

Previous Next

Package: parted;

Reported by: Oliver Mangold <o.mangold <at> gmail.com>

Date: Sun, 27 Jan 2019 11:43:02 UTC

Severity: normal

Done: "Brian C. Lane" <bcl <at> redhat.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: "Brian C. Lane" <bcl <at> redhat.com>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#34218: closed (Partition name is not set by mkpart if
 compiled with --disable-debug)
Date: Thu, 31 Jan 2019 19:31:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Thu, 31 Jan 2019 11:30:05 -0800
with message-id <20190131193005.GB11492 <at> lister.brianlane.com>
and subject line Re: bug#34218: Partition name is not set by mkpart if compiled with --disable-debug
has caused the debbugs.gnu.org bug report #34218,
regarding Partition name is not set by mkpart if compiled with --disable-debug
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
34218: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=34218
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Oliver Mangold <o.mangold <at> gmail.com>
To: bug-parted <at> gnu.org
Subject: Partition name is not set by mkpart if compiled with --disable-debug
Date: Sun, 27 Jan 2019 11:34:40 +0100
Hi,

I noticed a long-standing bug, that the 'name' argument of mkpart seems to be ignored. It happens only with debug disabled on compilation '--disable-debug' (as e.g. Arch Linux does for its package). The reason is, that from parted.c the function ped_partition_set_name is called within an assert. I believe the code should be rather something like this (which works for me):

--- parted/parted.c.orig	2019-01-27 11:27:54.742081238 +0100
+++ parted/parted.c	2019-01-27 11:28:18.049039748 +0100
@@ -806,7 +806,8 @@
 
         /* set minor attributes */
         if (part_name)
-                PED_ASSERT (ped_partition_set_name (part, part_name));
+            if (!ped_partition_set_name (part, part_name))
+                goto error;
         free (part_name);  /* avoid double-free upon failure */
         part_name = NULL;
         if (!ped_partition_set_system (part, fs_type))
---

Best regards,

Oliver


[Message part 3 (message/rfc822, inline)]
From: "Brian C. Lane" <bcl <at> redhat.com>
To: Oliver Mangold <o.mangold <at> gmail.com>
Cc: 34218-done <at> debbugs.gnu.org
Subject: Re: bug#34218: Partition name is not set by mkpart if compiled with
 --disable-debug
Date: Thu, 31 Jan 2019 11:30:05 -0800
On Sun, Jan 27, 2019 at 11:34:40AM +0100, Oliver Mangold wrote:
> Hi,
> 
> I noticed a long-standing bug, that the 'name' argument of mkpart seems to be ignored. It happens only with debug disabled on compilation '--disable-debug' (as e.g. Arch Linux does for its package). The reason is, that from parted.c the function ped_partition_set_name is called within an assert. I believe the code should be rather something like this (which works for me):
> 
> --- parted/parted.c.orig	2019-01-27 11:27:54.742081238 +0100
> +++ parted/parted.c	2019-01-27 11:28:18.049039748 +0100
> @@ -806,7 +806,8 @@
>  
>          /* set minor attributes */
>          if (part_name)
> -                PED_ASSERT (ped_partition_set_name (part, part_name));
> +            if (!ped_partition_set_name (part, part_name))
> +                goto error;
>          free (part_name);  /* avoid double-free upon failure */
>          part_name = NULL;
>          if (!ped_partition_set_system (part, fs_type))

Thanks, I've applied this to master with a small change, it needs to
jump to error_remove_part

I'm also not sure it's a good idea to run parted without debug, when I
added --disable-debug to my fedora build pretty much all the tests fail
with segfaults.

But either way, an assert shouldn't be wrapping function calls that have
side-effects.

-- 
Brian C. Lane (PST8PDT)


This bug report was last modified 6 years and 111 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.