Hello dear git people.
I experience a reproducible segmentation fault on one of my repositories when
doing a "git log --submodule -p", tested with newest version on Arch Linux (git
version 1.8.1.1) and built fresh (git version 1.8.1.1.347.g9591fcc), tried on 2
seperate systems:
Program terminated with signal 11, Segmentation fault.
#0 0x00000000004b51e5 in parse_commit_header (context=0x7ffff69b6980) at
pretty.c:752
752 for (i = 0; msg[i]; i++) {
(gdb) bt
#0 0x00000000004b51e5 in parse_commit_header (context=0x7ffff69b6980) at
pretty.c:752
#1 format_commit_one (context=<optimized out>, placeholder=0x526b1e "s",
sb=0x7ffff69b6ad0) at pretty.c:1157
#2 format_commit_item (sb=0x7ffff69b6ad0, placeholder=0x526b1e "s",
context=<optimized out>) at pretty.c:1224
#3 0x00000000004dacd9 in strbuf_expand (sb=sb@entry=0x7ffff69b6ad0,
format=0x526b1e "s", format@entry=0x526b18 " %m %s", fn=fn@entry=0x4b4730
<format_commit_item>, context=context@entry=0x7ffff69b6980)
at strbuf.c:247
#4 0x00000000004b5816 in format_commit_message (commit=commit@entry=0x1ffafd8,
format=format@entry=0x526b18 " %m %s", sb=sb@entry=0x7ffff69b6ad0,
pretty_ctx=pretty_ctx@entry=0x7ffff69b6af0) at pretty.c:1284
#5 0x00000000004dde52 in print_submodule_summary (reset=0x754640 "\033[m",
add=0x754708 "\033[32m", del=0x7546e0 "\033[31m", f=0x7f0685bac7a0,
rev=0x7ffff69b6b40) at submodule.c:236
#6 show_submodule_summary (f=0x7f0685bac7a0, path=<optimized out>,
one=one@entry=0x1ff2af0
"\020\\vC\371\070\vJ\352\344\205\340\226u\273\021\372\330\234\004",
two=two@entry=0x2030a60 "\301a(\350\371\372\340mb[խo_\272\301\223V˙",
dirty_submodule=<optimized out>, meta=meta@entry=0x754690 "\033[1m",
del=del@entry=0x7546e0 "\033[31m", add=0x754708 "\033[32m",
reset=reset@entry=0x754640 "\033[m") at submodule.c:307
#7 0x000000000048dd1d in builtin_diff (name_a=name_a@entry=0x1ff2b50
"Packages/Application/Amadeus.Somea.Dialog", name_b=name_b@entry=0x1ff2b50
"Packages/Application/Amadeus.Somea.Dialog",
one=one@entry=0x1ff2af0, two=two@entry=0x2030a60, xfrm_msg=0x2039a20
"\033[1mindex 105c764..c16128e 160000\033[m\n",
must_show_header=must_show_header@entry=0, o=o@entry=0x7ffff69b7b88,
complete_rewrite=complete_rewrite@entry=0) at diff.c:2267
#8 0x000000000048e60e in run_diff_cmd (pgm=pgm@entry=0x0, name=0x1ff2b50
"Packages/Application/Amadeus.Somea.Dialog", other=<optimized out>,
attr_path=attr_path@entry=0x1ff2b50
"Packages/Application/Amadeus.Somea.Dialog", one=one@entry=0x1ff2af0,
two=two@entry=0x2030a60, msg=msg@entry=0x7ffff69b74b0,
o=o@entry=0x7ffff69b7b88, p=p@entry=0x20371b0)
at diff.c:3057
(gdb) bt
#0 0x00000000004b51e5 in parse_commit_header (context=0x7ffff69b6980) at
pretty.c:752
#1 format_commit_one (context=<optimized out>, placeholder=0x526b1e "s",
sb=0x7ffff69b6ad0) at pretty.c:1157
#2 format_commit_item (sb=0x7ffff69b6ad0, placeholder=0x526b1e "s",
context=<optimized out>) at pretty.c:1224
#3 0x00000000004dacd9 in strbuf_expand (sb=sb@entry=0x7ffff69b6ad0,
format=0x526b1e "s", format@entry=0x526b18 " %m %s", fn=fn@entry=0x4b4730
<format_commit_item>, context=context@entry=0x7ffff69b6980)
at strbuf.c:247
#4 0x00000000004b5816 in format_commit_message (commit=commit@entry=0x1ffafd8,
format=format@entry=0x526b18 " %m %s", sb=sb@entry=0x7ffff69b6ad0,
pretty_ctx=pretty_ctx@entry=0x7ffff69b6af0) at pretty.c:1284
#5 0x00000000004dde52 in print_submodule_summary (reset=0x754640 "\033[m",
add=0x754708 "\033[32m", del=0x7546e0 "\033[31m", f=0x7f0685bac7a0,
rev=0x7ffff69b6b40) at submodule.c:236
#6 show_submodule_summary (f=0x7f0685bac7a0, path=<optimized out>,
one=one@entry=0x1ff2af0
"\020\\vC\371\070\vJ\352\344\205\340\226u\273\021\372\330\234\004",
two=two@entry=0x2030a60 "\301a(\350\371\372\340mb[խo_\272\301\223V˙",
dirty_submodule=<optimized out>, meta=meta@entry=0x754690 "\033[1m",
del=del@entry=0x7546e0 "\033[31m", add=0x754708 "\033[32m",
reset=reset@entry=0x754640 "\033[m") at submodule.c:307
#7 0x000000000048dd1d in builtin_diff (name_a=name_a@entry=0x1ff2b50
"Packages/Application/Amadeus.Somea.Dialog", name_b=name_b@entry=0x1ff2b50
"Packages/Application/Amadeus.Somea.Dialog",
one=one@entry=0x1ff2af0, two=two@entry=0x2030a60, xfrm_msg=0x2039a20
"\033[1mindex 105c764..c16128e 160000\033[m\n",
must_show_header=must_show_header@entry=0, o=o@entry=0x7ffff69b7b88,
complete_rewrite=complete_rewrite@entry=0) at diff.c:2267
#8 0x000000000048e60e in run_diff_cmd (pgm=pgm@entry=0x0, name=0x1ff2b50
"Packages/Application/Amadeus.Somea.Dialog", other=<optimized out>,
attr_path=attr_path@entry=0x1ff2b50
"Packages/Application/Amadeus.Somea.Dialog", one=one@entry=0x1ff2af0,
two=two@entry=0x2030a60, msg=msg@entry=0x7ffff69b74b0,
o=o@entry=0x7ffff69b7b88, p=p@entry=0x20371b0)
at diff.c:3057
#9 0x000000000048eb3d in run_diff (o=0x7ffff69b7b88, p=0x20371b0) at
diff.c:3145
#10 diff_flush_patch (o=0x7ffff69b7b88, p=0x20371b0) at diff.c:3979
#11 diff_flush_patch (p=0x20371b0, o=0x7ffff69b7b88) at diff.c:3970
#12 0x000000000048f15f in diff_flush (options=options@entry=0x7ffff69b7b88) at
diff.c:4500
#13 0x00000000004a211a in log_tree_diff_flush (opt=opt@entry=0x7ffff69b7850) at
log-tree.c:776
#14 0x00000000004a22b2 in log_tree_diff (log=0x7ffff69b7720, commit=0x1ffdf60,
opt=0x7ffff69b7850) at log-tree.c:836
#15 log_tree_commit (opt=opt@entry=0x7ffff69b7850,
commit=commit@entry=0x1ffdf60) at log-tree.c:859
#16 0x00000000004393d3 in cmd_log_walk (rev=rev@entry=0x7ffff69b7850) at
builtin/log.c:310
#17 0x0000000000439f38 in cmd_log (argc=3, argv=0x7ffff69b80c0, prefix=0x0) at
builtin/log.c:582
#18 0x0000000000405978 in run_builtin (argv=0x7ffff69b80c0, argc=3, p=0x74fd20)
at git.c:281
#19 handle_internal_command (argc=3, argv=0x7ffff69b80c0) at git.c:442
#20 0x0000000000404de2 in run_argv (argv=0x7ffff69b7f50, argcp=0x7ffff69b7f5c)
at git.c:488
#21 main (argc=3, argv=0x7ffff69b80c0) at git.c:563
(gdb) f 0
#0 0x00000000004b51e5 in parse_commit_header (context=0x7ffff69b6980) at
pretty.c:752
752 for (i = 0; msg[i]; i++) {
(gdb) l
747 static void parse_commit_header(struct format_commit_context *context)
748 {
749 const char *msg = context->message;
750 int i;
751
752 for (i = 0; msg[i]; i++) {
753 int eol;
754 for (eol = i; msg[eol] && msg[eol] != '\n'; eol++)
755 ; /* do nothing */
756
(gdb) p msg
$7 = <optimized out>
(gdb) p context->message
$8 = 0x0
(gdb) x/8i $pc
=> 0x4b51e5 <format_commit_item+2741>: movzbl (%rcx),%eax
0x4b51e8 <format_commit_item+2744>: mov %rcx,0x18(%rsp)
0x4b51ed <format_commit_item+2749>: mov %rcx,%r10
0x4b51f0 <format_commit_item+2752>: test %al,%al
0x4b51f2 <format_commit_item+2754>: je 0x4b52a3
<format_commit_item+2931>
0x4b51f8 <format_commit_item+2760>: nopl 0x0(%rax,%rax,1)
0x4b5200 <format_commit_item+2768>: test %al,%al
0x4b5202 <format_commit_item+2770>: je 0x4b529e
<format_commit_item+2926>
(gdb) i r rcx
rcx 0x0 0
Does this help in any way? Can i provide any further information that helps?
Many thanks for reading this and all the best,
Armin
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html