Code

Fix the expansion pattern of the pseudo-static path buffer.
authorPierre Habouzit <madcoder@debian.org>
Wed, 19 Sep 2007 22:42:10 +0000 (00:42 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 21 Sep 2007 05:19:17 +0000 (22:19 -0700)
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
archive-tar.c

index a87bc4b83eaff9a5cf3a329eada73ff7c9e557d8..e1bced56093dc08bbc260736637af3356b8598bb 100644 (file)
@@ -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;