git cherry(pick) dumps core
- From
Andreas Krey <a.krey@gmx.de>
- Date
- Apr 29, 2010, 19:11 UTC
- Message-ID
- <20100429191150.GA10526@inner.home.ulmdo.de>
- In-Reply-To
- <20100428233758.GA1654@progeny.tock>
Hi,
I just have a case of git cherry-pick dieing with a core dump. The directly offending lines are get_message() in buildin/revert.c:
if ((out->reencoded_message = reencode_string(raw_message, git_commit_encoding, encoding))) out->message = out->reencoded_message;
abbrev = find_unique_abbrev(commit->object.sha1, DEFAULT_ABBREV); abbrev_len = strlen(abbrev);
/* Find beginning and end of commit subject. */ p = out->message; while (*p && (*p != '\n' || p[1] != '\n'))
and out->message is null at that point.
It looks like reencode_string is returning NULL, and get_message can't quite cope with that.
This is in v1.7.1 (plus a few mods in git-daemon.c).
I suppose it is a failing of iconv_open, as this is on sparc SunOS 5.9, but the reaction is a bit harsh.
Unfortunately the debugger is giving me strange results, like:
434 if (!in_encoding) (gdb) next 436 conv = iconv_open(out_encoding, in_encoding); (gdb) print conv $3 = 0x1003f8 (gdb) next 437 if (conv == (iconv_t) -1) (gdb) print conv $4 = 0x1003f8 (gdb) step 474 }
and the disasembly is just as counter-intuitive (with the branch targets).
Andreas