Fix the expansion pattern of the pseudo-static path buffer.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
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 @@
                            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;