On Fri, Jun 24, 2011 at 04:20:29PM +0200, Jim Meyering wrote: > Thank you for the complete bug report. > Here's the patch I'm about to push:
Thanks for looking at that problem so quickly. That patch does stop the crash on that file presumably by rejecting all the partitions. Since sending that last bug report I looked more closely at the partition table that was generated and found a couple of off-by-one errors in the table entries. The attached file contains a fixed partition table which should now be internally consistent. The patched parted now cleanly rejects both files as-is. But if they are length extended to match the internal LBA sizes, parted crashes in a new way. The attached file can be length extended with the command: dd if=/dev/zero of=ptest seek=2700001 bs=512 count=1 The file I sent yesterday can be extended with the command: dd if=/dev/zero of=ptable seek=31031293 bs=512 count=1 The backup GPT is detected as corrupt as expected, since it's at the end of the zero-extended device. Here's the crash dump of parted-3.0 with the patch on the attached file: $ /var/tmp/parted-3.0/parted/parted ptest unit co print unit s print WARNING: You are not superuser. Watch out for permissions. Error: The backup GPT table is corrupt, but the primary appears OK, so that will be used. parted: invalid token: unit OK/Cancel? ok Backtrace has 13 calls on stack: 13: /var/tmp/parted-3.0/libparted/.libs/libparted.so.1(ped_assert+0x31) [0x7f5f858094c1] 12: /var/tmp/parted-3.0/libparted/.libs/libparted.so.1(ped_geometry_read+0x80) [0x7f5f85810240] 11: /var/tmp/parted-3.0/libparted/.libs/libparted.so.1(ped_geometry_read_alloc+0x54) [0x7f5f85810514] 10: /var/tmp/parted-3.0/libparted/.libs/libparted.so.1(nilfs2_probe+0x8d) [0x7f5f85818ccd] 9: /var/tmp/parted-3.0/libparted/.libs/libparted.so.1(ped_file_system_probe_specific+0x5c) [0x7f5f8580a87c] 8: /var/tmp/parted-3.0/libparted/.libs/libparted.so.1(ped_file_system_probe+0x83) [0x7f5f8580a973] 7: /var/tmp/parted-3.0/libparted/.libs/libparted.so.1(+0x244d7) [0x7f5f858214d7] 6: /var/tmp/parted-3.0/libparted/.libs/libparted.so.1(ped_disk_new+0x75) [0x7f5f8580f9e5] 5: /var/tmp/parted-3.0/parted/.libs/lt-parted() [0x405e59] 4: /var/tmp/parted-3.0/parted/.libs/lt-parted(non_interactive_mode+0x8c) [0x40a7bc] 3: /var/tmp/parted-3.0/parted/.libs/lt-parted(main+0xd6e) [0x40800e] 2: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xff) [0x7f5f85001eff] 1: /var/tmp/parted-3.0/parted/.libs/lt-parted() [0x404bf9] Aborted parted doesn't seem to like that command line ("invalid token: unit") which I got from parted's assert error output from yesterday (is a documentation change needed there?) but pretty well all commands I tried caused similar crashes. >>> Dan -- Daniel Fandrich Embedded Developer Intrinsyc Software, Inc. 10th Floor, 700 West Pender Vancouver, BC V6C 1G8 604-801-6461 fax: 604-801-6417 http://www.intrinsyc.com
ptest
Description: Binary data
_______________________________________________ bug-parted mailing list bug-parted@gnu.org https://lists.gnu.org/mailman/listinfo/bug-parted