summaryrefslogtreecommitdiff
path: root/src/refs.c
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2015-03-04 00:29:37 +0100
committerCarlos Martín Nieto <cmn@dwim.me>2015-03-04 00:29:37 +0100
commitfe21d708b02c1b35c0ea717889ea633fe78eabaf (patch)
tree9749f518a2d4e80c7b44bb238260c45a6b48d65b /src/refs.c
parent9ce97782b412edb55b4bf8cb63e863d49745e09d (diff)
downloadlibgit2-fe21d708b02c1b35c0ea717889ea633fe78eabaf.tar.gz
Plug a few leaks
Diffstat (limited to 'src/refs.c')
-rw-r--r--src/refs.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/refs.c b/src/refs.c
index 3f6c33dcd..360e65373 100644
--- a/src/refs.c
+++ b/src/refs.c
@@ -1075,7 +1075,7 @@ int git_reference__update_terminal(
const git_signature *sig,
const char *log_message)
{
- git_reference *ref = NULL;
+ git_reference *ref = NULL, *ref2 = NULL;
git_signature *who = NULL;
const git_signature *to_use;
int error = 0;
@@ -1090,18 +1090,20 @@ int git_reference__update_terminal(
if (error == GIT_ENOTFOUND && ref) {
assert(git_reference_type(ref) == GIT_REF_SYMBOLIC);
giterr_clear();
- error = reference__create(&ref, repo, ref->target.symbolic, oid, NULL, 0, to_use,
+ error = reference__create(&ref2, repo, ref->target.symbolic, oid, NULL, 0, to_use,
log_message, NULL, NULL);
} else if (error == GIT_ENOTFOUND) {
giterr_clear();
- error = reference__create(&ref, repo, ref_name, oid, NULL, 0, to_use,
+ error = reference__create(&ref2, repo, ref_name, oid, NULL, 0, to_use,
log_message, NULL, NULL);
} else if (error == 0) {
assert(git_reference_type(ref) == GIT_REF_OID);
- error = reference__create(&ref, repo, ref->name, oid, NULL, 1, to_use,
+ error = reference__create(&ref2, repo, ref->name, oid, NULL, 1, to_use,
log_message, &ref->target.oid, NULL);
}
+ git_reference_free(ref2);
+ git_reference_free(ref);
git_signature_free(who);
return error;
}