summaryrefslogtreecommitdiff
path: root/archive-tar.c
diff options
context:
space:
mode:
authorLibravatar Pierre Habouzit <madcoder@debian.org>2007-09-20 00:42:10 +0200
committerLibravatar Junio C Hamano <gitster@pobox.com>2007-09-20 22:19:17 -0700
commite03e05ff73a6f6b4f32eb5cd13b4f1e43275e42f (patch)
tree5bb6c19f462f4595d55418313eb94e7cb6fc0aa7 /archive-tar.c
parentbuiltin-for-each-ref.c::copy_name() - do not overstep the buffer. (diff)
downloadtgif-e03e05ff73a6f6b4f32eb5cd13b4f1e43275e42f.tar.xz
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 a87bc4b83e..e1bced5609 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;