Commit 4dc87e72 by Patrick Steinhardt

merge: fix potential free of uninitialized memory

The function `merge_diff_mark_similarity_exact` may error our early and,
when it does so, free the `ours_deletes_by_oid` and
`theirs_deletes_by_oid` variables. While the first one can never be
uninitialized due to the first call actually assigning to it, the second
variable can be freed without being initialized.

Fix the issue by initializing both variables to `NULL`.
parent 40294f38
...@@ -1165,7 +1165,7 @@ static int merge_diff_mark_similarity_exact( ...@@ -1165,7 +1165,7 @@ static int merge_diff_mark_similarity_exact(
{ {
size_t i, j; size_t i, j;
git_merge_diff *conflict_src, *conflict_tgt; git_merge_diff *conflict_src, *conflict_tgt;
git_oidmap *ours_deletes_by_oid, *theirs_deletes_by_oid; git_oidmap *ours_deletes_by_oid = NULL, *theirs_deletes_by_oid = NULL;
int error = 0; int error = 0;
if (!(ours_deletes_by_oid = git_oidmap_alloc()) || if (!(ours_deletes_by_oid = git_oidmap_alloc()) ||
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment