diff --git a/builtin-archive.c b/builtin-archive.c
index 843a9e37bbb5b7274e928499d3b7935399216e65..04385dea05110053db72e30a77e6d4a10bc7875b 100644 (file)
--- a/builtin-archive.c
+++ b/builtin-archive.c
struct strbuf fmt;
if (src == buf->buf)
- to_free = strbuf_detach(buf);
+ to_free = strbuf_detach(buf, NULL);
strbuf_init(&fmt, 0);
for (;;) {
const char *b, *c;
strbuf_attach(&buf, buffer, *sizep, *sizep + 1);
convert_to_working_tree(path, buf.buf, buf.len, &buf);
convert_to_archive(path, buf.buf, buf.len, &buf, commit);
- *sizep = buf.len;
- buffer = buf.buf;
+ buffer = strbuf_detach(&buf, sizep);
}
return buffer;