[PATCH v4 20/22] builtin/log: fix leak when showing converted blob contents
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Aug 14, 2024, 06:52 UTC
- Message-ID
- <0e2d3e523f7debf121bf4c1e62e485577b77e9de.1723614263.git.ps@pks.im>
- In-Reply-To
- <cover.1723614263.git.ps@pks.im>
In `show_blob_object()`, we proactively call `textconv_object()`. In case we have a textconv driver for this blob we will end up showing the converted contents, otherwise we'll show the un-converted contents of it instead.
When the object has been converted we never free the buffer containing the converted contents. Fix this to plug this memory leak.
Signed-off-by: Patrick Steinhardt <ps@pks.im> --- builtin/log.c | 1 + t/t4030-diff-textconv.sh | 2 ++ 2 files changed, 3 insertions(+)
diff --git a/builtin/log.c b/builtin/log.c index f5cb00c643..36769bab3b 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -707,6 +707,7 @@ static int show_blob_object(const struct object_id *oid, struct rev_info *rev, c write_or_die(1, buf, size); object_context_release(&obj_context); + free(buf); return 0; } diff --git a/t/t4030-diff-textconv.sh b/t/t4030-diff-textconv.sh index a39a626664..29f6d610c2 100755 --- a/t/t4030-diff-textconv.sh +++ b/t/t4030-diff-textconv.sh @@ -1,6 +1,8 @@ #!/bin/sh test_description='diff.*.textconv tests' + +TEST_PASSES_SANITIZE_LEAK=true . ./test-lib.sh find_diff() {
-- 2.46.0.46.g406f326d27.dirty