Skip to content

Commit

Permalink
blame.c: Properly initialize strbuf after calling textconv_object(), …
Browse files Browse the repository at this point in the history
…again

2564aa4 started to initialize buf.alloc, but that should actually be one
more byte than the string length due to the trailing \0. Also, do not
modify buf.alloc out of the strbuf code. Use the existing strbuf_attach
instead.

Signed-off-by: Sebastian Schuberth <[email protected]>
Reviewed-by: Jeff King <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
sschuberth authored and gitster committed Nov 8, 2011
1 parent 55e7c0a commit 8518088
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions builtin/blame.c
Original file line number Diff line number Diff line change
Expand Up @@ -2077,6 +2077,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) {
Expand All @@ -2094,10 +2095,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;
Expand Down

0 comments on commit 8518088

Please sign in to comment.