GNU bug report logs -
#34218
Partition name is not set by mkpart if compiled with --disable-debug
Previous Next
Full log
Message #10 received at 34218-done <at> debbugs.gnu.org (full text, mbox):
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 110 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.