X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=archive-tar.c;h=e1bced56093dc08bbc260736637af3356b8598bb;hb=e2b7eaf0ca3897940961d23392d4ff718867ea9f;hp=0612bb6051e1c60d5151b0c65d097fe51ba93f2e;hpb=ddb95de33e99d547c3b533aea12f18c9e4dd649e;p=git.git diff --git a/archive-tar.c b/archive-tar.c index 0612bb605..e1bced560 100644 --- a/archive-tar.c +++ b/archive-tar.c @@ -3,7 +3,6 @@ */ #include "cache.h" #include "commit.h" -#include "strbuf.h" #include "tar.h" #include "builtin.h" #include "archive.h" @@ -132,7 +131,7 @@ static void write_entry(const unsigned char *sha1, struct strbuf *path, struct strbuf ext_header; memset(&header, 0, sizeof(header)); - strbuf_init(&ext_header); + strbuf_init(&ext_header, 0); if (!sha1) { *header.typeflag = TYPEFLAG_GLOBAL_HEADER; @@ -214,7 +213,7 @@ static void write_global_extended_header(const unsigned char *sha1) { struct strbuf ext_header; - strbuf_init(&ext_header); + strbuf_init(&ext_header, 0); strbuf_append_ext_header(&ext_header, "comment", sha1_to_hex(sha1), 40); write_entry(NULL, NULL, 0, ext_header.buf, ext_header.len); strbuf_release(&ext_header); @@ -239,15 +238,14 @@ static int write_tar_entry(const unsigned char *sha1, const char *filename, unsigned mode, int stage) { static struct strbuf path = STRBUF_INIT; - int filenamelen = strlen(filename); void *buffer; enum object_type type; unsigned long size; - strbuf_grow(&path, MAX(PATH_MAX, baselen + filenamelen + 1)); strbuf_reset(&path); + strbuf_grow(&path, PATH_MAX); strbuf_add(&path, base, baselen); - strbuf_add(&path, filename, filenamelen); + strbuf_addstr(&path, filename); if (S_ISDIR(mode) || S_ISGITLINK(mode)) { strbuf_addch(&path, '/'); buffer = NULL;