[PATCH v4 2/7] remote: fix tear down of struct remote
- From
Jacob Keller <jacob.e.keller@intel.com>
- Date
- Jun 23, 2025, 23:11 UTC
- Message-ID
- <20250623-jk-submodule-helper-use-url-v4-2-133ef3d89569@gmail.com>
- In-Reply-To
- <20250623-jk-submodule-helper-use-url-v4-0-133ef3d89569@gmail.com>
From: Jacob Keller <jacob.keller@gmail.com>
The remote_clear() function failed to free the remote->push and remote->fetch refspec fields.
This should be caught by the leak sanitizer. However, for callers which use ``the_repository``, the values never go out of scope and the sanitizer doesn't complain.
A future change is going to add a caller of read_config() for a submodule repository structure, which would result in the leak sanitizer complaining.
Fix remote_clear(), updating it to properly call refspec_clear() for both the push and fetch members.
Signed-off-by: Jacob Keller <jacob.keller@gmail.com> --- remote.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/remote.c b/remote.c index ee95126f3f20080a932b82314e8017e277569cc1..194bb447784ac1f71fb85a9fed3312e7458a9d5d 100644 --- a/remote.c +++ b/remote.c @@ -165,6 +165,9 @@ static void remote_clear(struct remote *remote) strvec_clear(&remote->url); strvec_clear(&remote->pushurl); + refspec_clear(&remote->push); + refspec_clear(&remote->fetch); + free((char *)remote->receivepack); free((char *)remote->uploadpack); FREE_AND_NULL(remote->http_proxy);
-- 2.48.1.397.gec9d649cc640