From ff67083ccd77dc80002751c0f81ac50e122abd6c Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Tue, 5 Nov 2024 07:17:49 +0100 Subject: builtin/merge: release output buffer after performing merge The `obuf` member of `struct merge_options` is used to buffer output in some cases. In order to not discard its allocated memory we only release its contents in `merge_finalize()` when we're not currently recursing into a subtree. This results in some situations where we seemingly do not release the buffer reliably. We thus have calls to `strbuf_release()` for this buffer scattered across the codebase. But we're missing one callsite in git-merge(1), which causes a memory leak. We should ideally refactor this interface so that callers don't have to know about any such internals. But for now, paper over the issue by adding one more `strbuf_release()` call. Signed-off-by: Patrick Steinhardt Signed-off-by: Junio C Hamano --- t/t6424-merge-unrelated-index-changes.sh | 1 + 1 file changed, 1 insertion(+) (limited to 't/t6424-merge-unrelated-index-changes.sh') diff --git a/t/t6424-merge-unrelated-index-changes.sh b/t/t6424-merge-unrelated-index-changes.sh index 7677c5f08d..a7ea8acb84 100755 --- a/t/t6424-merge-unrelated-index-changes.sh +++ b/t/t6424-merge-unrelated-index-changes.sh @@ -2,6 +2,7 @@ test_description="merges with unrelated index changes" +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh # Testcase for some simple merges -- cgit v1.2.3