On Mon, Nov 07, 2011 at 04:53:10PM +0100, Sebastian Schuberth wrote: > --- a/builtin/blame.c > +++ b/builtin/blame.c > @@ -2114,7 +2114,7 @@ static struct commit *fake_working_tree_commit(struct diff_options *opt, > 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.alloc = buf_len + 1; > buf.len = buf_len; > } > else if (strbuf_read_file(&buf, read_from, st.st_size) != st.st_size) Your patch is correct in the sense that this fixes a bug, but it just seems wrong to be touching the alloc parameter outside of the strbuf code. It looks like the intent is to do the equivalent of: strbuf_add(&buf, some_heap_buf, len); free(some_heap_buf); but avoid the extra allocation and copy. Should there be a "strbuf_attach" function to encapsulate this pattern? -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html