Signed-off-by: Sun He <[email protected]>
---
bulk-checkin.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/bulk-checkin.c b/bulk-checkin.c
index 118c625..8c47d71 100644
--- a/bulk-checkin.c
+++ b/bulk-checkin.c
@@ -23,7 +23,8 @@ static struct bulk_checkin_state {
static void finish_bulk_checkin(struct bulk_checkin_state *state)
{
unsigned char sha1[20];
- char packname[PATH_MAX];
+ char *packname;
+ struct strbuf sb;
int i;
if (!state->f)
@@ -43,6 +44,10 @@ static void finish_bulk_checkin(struct bulk_checkin_state
*state)
close(fd);
}
+ /* 64-1 is more than the sum of len(sha1_to_hex(sha1)) and len(".pack") */
+ strbuf_init(&sb,strlen(get_object_directory())+64);
+ packname = sb.buf;
+
sprintf(packname, "%s/pack/pack-", get_object_directory());
finish_tmp_packfile(packname, state->pack_tmp_name,
state->written, state->nr_written,
@@ -54,6 +59,9 @@ clear_exit:
free(state->written);
memset(state, 0, sizeof(*state));
+ /* release sb space */
+ strbuf_release(&sb);
+
/* Make objects we just wrote available to ourselves */
reprepare_packed_git();
}
--
1.7.1
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html