From 88183c1988ff1c8b1bbe956e0df6d2c10e5a12b2 Mon Sep 17 00:00:00 2001 From: Frank Li Date: Sun, 27 Jan 2013 13:36:37 +0800 Subject: [PATCH] Fix fail clone local repository because can't found object avoid use object which is already free Signed-off-by: Frank Li --- src/transports/local.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/transports/local.c b/src/transports/local.c index c6e79846e..44431d587 100644 --- a/src/transports/local.c +++ b/src/transports/local.c @@ -318,12 +318,15 @@ static int local_download_pack( if (!git_object_lookup((git_object**)&commit, t->repo, &oid, GIT_OBJ_COMMIT)) { const git_oid *tree_oid = git_commit_tree_id(commit); - git_commit_free(commit); /* Add the commit and its tree */ if ((error = git_packbuilder_insert(pack, &oid, NULL)) < 0 || - (error = git_packbuilder_insert_tree(pack, tree_oid)) < 0) + (error = git_packbuilder_insert_tree(pack, tree_oid)) < 0) { + git_commit_free(commit); goto cleanup; + } + + git_commit_free(commit); } }