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

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
This commit is contained in:
Pierre Habouzit 2007-09-20 00:42:10 +02:00 committed by Junio C Hamano
parent 6b30852ded
commit e03e05ff73

View File

@ -238,15 +238,14 @@ static int write_tar_entry(const unsigned char *sha1,
const char *filename, unsigned mode, int stage) const char *filename, unsigned mode, int stage)
{ {
static struct strbuf path = STRBUF_INIT; static struct strbuf path = STRBUF_INIT;
int filenamelen = strlen(filename);
void *buffer; void *buffer;
enum object_type type; enum object_type type;
unsigned long size; unsigned long size;
strbuf_grow(&path, MAX(PATH_MAX, baselen + filenamelen + 1));
strbuf_reset(&path); strbuf_reset(&path);
strbuf_grow(&path, PATH_MAX);
strbuf_add(&path, base, baselen); strbuf_add(&path, base, baselen);
strbuf_add(&path, filename, filenamelen); strbuf_addstr(&path, filename);
if (S_ISDIR(mode) || S_ISGITLINK(mode)) { if (S_ISDIR(mode) || S_ISGITLINK(mode)) {
strbuf_addch(&path, '/'); strbuf_addch(&path, '/');
buffer = NULL; buffer = NULL;