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.
This commit is contained in:
Jeff King 2012-01-05 17:31:13 -05:00
parent f2114d0a35
commit 671bbdd372

View File

@ -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)