]> git.ipfire.org Git - thirdparty/git.git/commit
cat-file: fix a common "struct object_context" memory leak
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Fri, 1 Jul 2022 10:42:59 +0000 (12:42 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 1 Jul 2022 18:43:43 +0000 (11:43 -0700)
commit27472b5195e3e8e888be0fdc3a7a22687cd808fe
tree1b23edd76ac99711ace4cc3b6b8e5f3fa07d8514
parent55916bba0f4805a3bd0c1891c48effbfe1d12536
cat-file: fix a common "struct object_context" memory leak

Fix a memory leak where "cat-file" will leak the "path" member. See
e5fba602e59 (textconv: support for cat_file, 2010-06-15) for the code
that introduced the offending get_oid_with_context() call (called
get_sha1_with_context() at the time).

As a result we can mark several tests as passing with SANITIZE=leak
using "TEST_PASSES_SANITIZE_LEAK=true".

As noted in dc944b65f1d (get_sha1_with_context: dynamically allocate
oc->path, 2017-05-19) callers must free the "path" member. That same
commit added the relevant free() to this function, but we weren't
catching cases where we'd return early.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 files changed:
builtin/cat-file.c
t/t0028-working-tree-encoding.sh
t/t1051-large-conversion.sh
t/t3304-notes-mixed.sh
t/t4044-diff-index-unique-abbrev.sh
t/t4140-apply-ita.sh
t/t5314-pack-cycle-detection.sh
t/t6422-merge-rename-corner-cases.sh
t/t8007-cat-file-textconv.sh
t/t8010-cat-file-filters.sh
t/t9104-git-svn-follow-parent.sh
t/t9132-git-svn-broken-symlink.sh
t/t9301-fast-import-notes.sh