git-diff-tree crashes on ubuntu kernel git repository
From: Torgil Svensson <hidden>
Date: 2016-06-15 22:42:27
Hi
It seems like git-diff-tree has some problems with moved files:
$ git-diff-tree -p --stat --summary -M
348f179e3195448cea49c98a79cce8c7f446ce26
343ca16424ba031b37e4df49afddaee098a8f347 | wc -l
*** glibc detected *** free(): invalid pointer: 0x12ecbbf0 ***
6101
As can be seen below there is some obvious error in the output just
prior to the crash:
drivers/w1/{masters => }/ds_w1_bridge.c | 38
This file is moved into "w1/masters" by commit
bd529cfb40c427d5b5aae0d315afb9f0a1da5e76
$ git --version
git version 1.3.3.g5e36
$ cat .git/remotes/origin
URL: git://git.kernel.org/pub/scm/linux/kernel/git/bcollins/ubuntu-2.6
Pull: refs/heads/master:refs/heads/origin
$ gdb git-diff-tree
(gdb) run -p --stat --summary -M
348f179e3195448cea49c98a79cce8c7f446ce26
343ca16424ba031b37e4df49afddaee098a8f347
<...lots of files...>
drivers/video/w100fb.c | 162
drivers/video/w100fb.h | 748 -
drivers/w1/Kconfig | 62
drivers/w1/Makefile | 10
drivers/w1/{masters => }/ds_w1_bridge.c | 38
*** glibc detected *** free(): invalid pointer: 0x12ecbbf0 ***
Program received signal SIGABRT, Aborted.
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xb7d7e9a1 in raise () from /lib/tls/i686/cmov/libc.so.6
#2 0xb7d802b9 in abort () from /lib/tls/i686/cmov/libc.so.6
#3 0xb7db287a in __fsetlocking () from /lib/tls/i686/cmov/libc.so.6
#4 0xb7db8fd4 in malloc_usable_size () from /lib/tls/i686/cmov/libc.so.6
#5 0xb7db934a in free () from /lib/tls/i686/cmov/libc.so.6
#6 0x08056902 in show_stats (data=0x8deff80) at diff.c:392
#7 0x08058466 in diff_flush (options=0x80686b0) at diff.c:1999
#8 0x0805b143 in log_tree_diff_flush (opt=0x8068680) at log-tree.c:82
#9 0x08049d11 in main (argc=0, argv=0xbfcf8a14) at diff-tree.c:130
(gdb)
As shown above I can easily recreate the crash if you want more info.
Thank you for a wonderful tool.
//Torgil