]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'js/ort-clean-up-after-failed-merge' into maint
authorJunio C Hamano <gitster@pobox.com>
Fri, 26 Aug 2022 18:13:11 +0000 (11:13 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 26 Aug 2022 18:13:11 +0000 (11:13 -0700)
Plug memory leaks in the failure code path in the "merge-ort" merge
strategy backend.
source: <pull.1307.v2.git.1659114727.gitgitgadget@gmail.com>

* js/ort-clean-up-after-failed-merge:
  merge-ort: do leave trace2 region even if checkout fails
  merge-ort: clean up after failed merge

merge-ort.c

index 8c4927f0e1f745cbdb0f436676991fbe08ea4da7..ebb9a75425137eaf38bb5647802744e32cadbf16 100644 (file)
@@ -4294,6 +4294,8 @@ void merge_switch_to_result(struct merge_options *opt,
                if (checkout(opt, head, result->tree)) {
                        /* failure to function */
                        result->clean = -1;
+                       merge_finalize(opt, result);
+                       trace2_region_leave("merge", "checkout", opt->repo);
                        return;
                }
                trace2_region_leave("merge", "checkout", opt->repo);
@@ -4304,6 +4306,9 @@ void merge_switch_to_result(struct merge_options *opt,
                        /* failure to function */
                        opt->priv = NULL;
                        result->clean = -1;
+                       merge_finalize(opt, result);
+                       trace2_region_leave("merge", "record_conflicted",
+                                           opt->repo);
                        return;
                }
                opt->priv = NULL;