builtin/log: fix leak when showing converted blob contents

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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt
2024-08-14 08:52:53 +02:00
committed by Junio C Hamano
parent 38678e5df5
commit 0aaca0ec09
2 changed files with 3 additions and 0 deletions

View File

@ -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); write_or_die(1, buf, size);
object_context_release(&obj_context); object_context_release(&obj_context);
free(buf);
return 0; return 0;
} }

View File

@ -1,6 +1,8 @@
#!/bin/sh #!/bin/sh
test_description='diff.*.textconv tests' test_description='diff.*.textconv tests'
TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh . ./test-lib.sh
find_diff() { find_diff() {