summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-11-07 16:43:19 -0800
committerJunio C Hamano <gitster@pobox.com>2011-11-07 16:43:19 -0800
commit92622e62145b05a159b057a4334205e6a3b07630 (patch)
treefabf99ebc656b7aae3f48896fea32d3332764a85
parent5ae0f68160a189fafc2cf50b9a35aacc73cf8209 (diff)
parent8518088fe803131d11eade2b15796f26ae207191 (diff)
downloadgit-92622e62145b05a159b057a4334205e6a3b07630.tar.gz
Merge branch 'ss/blame-textconv-fake-working-tree'
* ss/blame-textconv-fake-working-tree: blame.c: Properly initialize strbuf after calling textconv_object(), again
-rw-r--r--builtin/blame.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/builtin/blame.c b/builtin/blame.c
index 86c0537cbb..80febbe420 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -2096,6 +2096,7 @@ static struct commit *fake_working_tree_commit(struct diff_options *opt,
if (!contents_from || strcmp("-", contents_from)) {
struct stat st;
const char *read_from;
+ char *buf_ptr;
unsigned long buf_len;
if (contents_from) {
@@ -2113,10 +2114,8 @@ static struct commit *fake_working_tree_commit(struct diff_options *opt,
switch (st.st_mode & S_IFMT) {
case S_IFREG:
if (DIFF_OPT_TST(opt, ALLOW_TEXTCONV) &&
- textconv_object(read_from, mode, null_sha1, &buf.buf, &buf_len)) {
- buf.alloc = buf_len;
- buf.len = buf_len;
- }
+ textconv_object(read_from, mode, null_sha1, &buf_ptr, &buf_len))
+ strbuf_attach(&buf, buf_ptr, buf_len, buf_len + 1);
else if (strbuf_read_file(&buf, read_from, st.st_size) != st.st_size)
die_errno("cannot open or read '%s'", read_from);
break;