X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=sidebyside;f=entry.c;h=cfadc6a292033d349f6b1efff75d2c4f9f2525fe;hb=5410a02ab9e6a1987147724f8ea65e6a077b3832;hp=fc3a506ecef4ed654f26c11996df109dd135a4ed;hpb=9269df96105dff5ecc137b598ac7664d218ac6be;p=git.git diff --git a/entry.c b/entry.c index fc3a506ec..cfadc6a29 100644 --- a/entry.c +++ b/entry.c @@ -104,7 +104,8 @@ static int write_entry(struct cache_entry *ce, char *path, const struct checkout long wrote; switch (ntohl(ce->ce_mode) & S_IFMT) { - char *buf, *new; + char *new; + struct strbuf buf; unsigned long size; case S_IFREG: @@ -116,10 +117,12 @@ static int write_entry(struct cache_entry *ce, char *path, const struct checkout /* * Convert from git internal format to working tree format */ - buf = convert_to_working_tree(ce->name, new, &size); - if (buf) { + strbuf_init(&buf, 0); + if (convert_to_working_tree(ce->name, new, size, &buf)) { + size_t newsize = 0; free(new); - new = buf; + new = strbuf_detach(&buf, &newsize); + size = newsize; } if (to_tempfile) {