diff options
| author | Ævar Arnfjörð Bjarmason <avarab@gmail.com> | 2022-02-05 01:08:14 +0100 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2022-02-06 18:02:34 -0800 |
| commit | f36d4f8316ac567bd3bd0de3c051f2cd8ae2444b (patch) | |
| tree | 0ac9ac390046bb4ce4158e89483cfd4ff1e69cbf /builtin/ls-remote.c | |
| parent | 38062e73e009f27ea192d50481fcb5e7b0e9d6eb (diff) | |
| download | git-f36d4f8316ac567bd3bd0de3c051f2cd8ae2444b.tar.xz | |
ls-remote & transport API: release "struct transport_ls_refs_options"
Fix a memory leak in codepaths that use the "struct
transport_ls_refs_options" API. Since the introduction of the struct
in 39835409d10 (connect, transport: encapsulate arg in struct,
2021-02-05) the caller has been responsible for freeing it.
That commit in turn migrated code originally added in
402c47d9391 (clone: send ref-prefixes when using protocol v2,
2018-07-20) and b4be74105fe (ls-remote: pass ref prefixes when
requesting a remote's refs, 2018-03-15). Only some of those codepaths
were releasing the allocated resources of the struct, now all of them
will.
Mark the "t/t5511-refspec.sh" test as passing when git is compiled
with SANITIZE=leak. They'll now be listed as running under the
"GIT_TEST_PASSING_SANITIZE_LEAK=true" test mode (the "linux-leaks" CI
target). Previously 24/47 tests would fail.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/ls-remote.c')
| -rw-r--r-- | builtin/ls-remote.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/builtin/ls-remote.c b/builtin/ls-remote.c index 44448fa61d..d856085e94 100644 --- a/builtin/ls-remote.c +++ b/builtin/ls-remote.c @@ -155,6 +155,7 @@ int cmd_ls_remote(int argc, const char **argv, const char *prefix) ref_array_clear(&ref_array); if (transport_disconnect(transport)) - return 1; + status = 1; + transport_ls_refs_options_release(&transport_options); return status; } |
