Patrick Steinhardt <ps@xxxxxx> writes: > The series is built on top of 406f326d27 (The second batch, 2024-08-01) > with ps/leakfixes-part-3 at f30bfafcd4 (commit-reach: fix trivial memory > leak when computing reachability, 2024-08-01) merged into it. A quick question. Is it on your radar that transport_get() leaks the helper name when "foo::bar" is given as a remote? https://github.com/git/git/actions/runs/10274435719/job/28431161208#step:5:893 If not, I'll handle it separately, whose fix should look something like the attached. Thanks. transport.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git c/transport.c w/transport.c index 12cc5b4d96..13bf8183b7 100644 --- c/transport.c +++ w/transport.c @@ -1115,6 +1115,7 @@ static struct transport_vtable builtin_smart_vtable = { struct transport *transport_get(struct remote *remote, const char *url) { const char *helper; + char *helper_to_free = NULL; const char *p; struct transport *ret = xcalloc(1, sizeof(*ret)); @@ -1139,10 +1140,11 @@ struct transport *transport_get(struct remote *remote, const char *url) while (is_urlschemechar(p == url, *p)) p++; if (starts_with(p, "::")) - helper = xstrndup(url, p - url); + helper_to_free = helper = xstrndup(url, p - url); if (helper) { transport_helper_init(ret, helper); + free(helper_to_free); } else if (starts_with(url, "rsync:")) { die(_("git-over-rsync is no longer supported")); } else if (url_is_local_not_ssh(url) && is_file(url) && is_bundle(url, 1)) {