summaryrefslogtreecommitdiff
path: root/archive-tar.c
diff options
context:
space:
mode:
authorPierre Habouzit <madcoder@debian.org>2007-09-19 22:42:10 (GMT)
committerJunio C Hamano <gitster@pobox.com>2007-09-21 05:19:17 (GMT)
commite03e05ff73a6f6b4f32eb5cd13b4f1e43275e42f (patch)
tree5bb6c19f462f4595d55418313eb94e7cb6fc0aa7 /archive-tar.c
parent6b30852ded5074652f4304a303521932235c62db (diff)
downloadgit-e03e05ff73a6f6b4f32eb5cd13b4f1e43275e42f.zip
git-e03e05ff73a6f6b4f32eb5cd13b4f1e43275e42f.tar.gz
git-e03e05ff73a6f6b4f32eb5cd13b4f1e43275e42f.tar.bz2
Fix the expansion pattern of the pseudo-static path buffer.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Diffstat (limited to 'archive-tar.c')
-rw-r--r--archive-tar.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/archive-tar.c b/archive-tar.c
index a87bc4b..e1bced5 100644
--- a/archive-tar.c
+++ b/archive-tar.c
@@ -238,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;