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)