From 671bbdd37227d3466ba9a8e1ad0cc6c46c701967 Mon Sep 17 00:00:00 2001 From: Jeff King Date: Thu, 5 Jan 2012 17:31:13 -0500 Subject: [PATCH] reflog_write: don't access free()'d memory We get the oid of a reference, free the reference, then convert the oid to a string. We need to convert the oid before freeing the memory. --- src/reflog.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/reflog.c b/src/reflog.c index 84ce52d91..a327975d6 100644 --- a/src/reflog.c +++ b/src/reflog.c @@ -237,10 +237,10 @@ int git_reflog_write(git_reference *ref, const git_oid *oid_old, return error; } - git_reference_free(r); - git_oid_to_string(new, GIT_OID_HEXSZ+1, oid); + git_reference_free(r); + error = git_buf_join_n(&log_path, '/', 3, ref->owner->path_repository, GIT_REFLOG_DIR, ref->name); if (error < GIT_SUCCESS)