btrfs-progs v3.14 mkfs.btrfs bug: --features long-option segfaults, -O short-option OK
Using btrfs-progs v3.14: mkfs.btrfs ... --features ... segfaults. mkfs.btrfs ... -O ... works fine. * I used other long options, so it's not simply a problem parsing long options. * I tried the long option with various features; none worked, including --features list-all with no other options. That too segfaulted, tho -O list-all worked. Segfault line as logged: mkfs.btrfs[5231]: segfault at 0 ip 7fb531c7ab1a sp 7fffaf1a7a78 error 4 in libc-2.19.so[7fb531bf8000+19a000] btrfs-progs v3.14 from git on kernel v3.14 from git, gentoo/~amd64, built with gcc-4.8.2, using glibc-2.19. -- Duncan - List replies preferred. No HTML msgs. Every nonfree program has a lord, a master -- and if you use the program, he is your master. Richard Stallman -- To unsubscribe from this list: send the line unsubscribe linux-btrfs in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: btrfs-progs v3.14 mkfs.btrfs bug: --features long-option segfaults, -O short-option OK
On Wed, 16 Apr 2014 06:41:44 +, Duncan wrote: Using btrfs-progs v3.14: mkfs.btrfs ... --features ... segfaults. Can reproduce (also with glibc 2.19 on Gentoo ;-) and building with debug found: (gdb) bt #0 0x76f3aaea in strlen () from /lib64/libc.so.6 #1 0x76f3a82e in strdup () from /lib64/libc.so.6 #2 0x004213e8 in main (ac=2, av=0x7fffe308) at mkfs.c:1312 Sure enough that line is handling 'O', where '--features' is supposed to be handled. No idea why -O works, but debugging shows that optarg is null at that point, so strdup goes poof. -h -- To unsubscribe from this list: send the line unsubscribe linux-btrfs in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: btrfs-progs v3.14 mkfs.btrfs bug: --features long-option segfaults, -O short-option OK
On Wed, 16 Apr 2014 07:48:53 +, Holger Hoffstätte wrote: On Wed, 16 Apr 2014 06:41:44 +, Duncan wrote: Using btrfs-progs v3.14: mkfs.btrfs ... --features ... segfaults. Can reproduce (also with glibc 2.19 on Gentoo ;-) and building with debug found: (gdb) bt #0 0x76f3aaea in strlen () from /lib64/libc.so.6 #1 0x76f3a82e in strdup () from /lib64/libc.so.6 #2 0x004213e8 in main (ac=2, av=0x7fffe308) at mkfs.c:1312 Sure enough that line is handling 'O', where '--features' is supposed to be handled. No idea why -O works, but debugging shows that optarg is null at that point, so strdup goes poof. Well, duh! The long_options array does not declare that --features wants an argument, so getopt does not create one. holgerdiff -u mkfs.c\~ mkfs.c --- mkfs.c~ 2014-04-16 09:41:42.0 +0200 +++ mkfs.c 2014-04-16 09:51:45.408854096 +0200 @@ -350,7 +350,7 @@ { version, 0, NULL, 'V' }, { rootdir, 1, NULL, 'r' }, { nodiscard, 0, NULL, 'K' }, - { features, 0, NULL, 'O' }, + { features, 1, NULL, 'O' }, { NULL, 0, NULL, 0} }; This fixes it. -h -- To unsubscribe from this list: send the line unsubscribe linux-btrfs in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html