aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>2022-03-04 19:32:07 +0100
committerJunio C Hamano <gitster@pobox.com>2022-03-04 13:24:18 -0800
commita41e8e74674d53a46616b01f2c18e43c7f2f30a8 (patch)
treecbc78213d5eae87f1157ee0f35ab673de68ae7f9
parenta18d66cefb9e5ee4fd49be1d60e90523cd89ca0f (diff)
downloadgit-a41e8e74674d53a46616b01f2c18e43c7f2f30a8.tar.gz
urlmatch.c: add and use a *_release() function
Plug a memory leak in credential_apply_config() by adding and using a new urlmatch_config_release() function. This just does a string_list_clear() on the "vars" member. This finished up work on normalizing the init/free pattern in this API, started in 73ee449bbf2 (urlmatch.[ch]: add and use URLMATCH_CONFIG_INIT, 2021-10-01). Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin/config.c2
-rw-r--r--credential.c1
-rw-r--r--urlmatch.c5
-rw-r--r--urlmatch.h1
4 files changed, 8 insertions, 1 deletions
diff --git a/builtin/config.c b/builtin/config.c
index 542d8d02b2..ebec61868b 100644
--- a/builtin/config.c
+++ b/builtin/config.c
@@ -612,7 +612,7 @@ static int get_urlmatch(const char *var, const char *url)
strbuf_release(&matched->value);
}
- string_list_clear(&config.vars, 1);
+ urlmatch_config_release(&config);
string_list_clear(&values, 1);
free(config.url.url);
diff --git a/credential.c b/credential.c
index e7240f3f63..f6389a5068 100644
--- a/credential.c
+++ b/credential.c
@@ -130,6 +130,7 @@ static void credential_apply_config(struct credential *c)
git_config(urlmatch_config_entry, &config);
string_list_clear(&config.vars, 1);
free(normalized_url);
+ urlmatch_config_release(&config);
strbuf_release(&url);
c->configured = 1;
diff --git a/urlmatch.c b/urlmatch.c
index 03ad3f30a9..b615adc923 100644
--- a/urlmatch.c
+++ b/urlmatch.c
@@ -611,3 +611,8 @@ int urlmatch_config_entry(const char *var, const char *value, void *cb)
strbuf_release(&synthkey);
return retval;
}
+
+void urlmatch_config_release(struct urlmatch_config *config)
+{
+ string_list_clear(&config->vars, 1);
+}
diff --git a/urlmatch.h b/urlmatch.h
index 34a3ba6d19..9f40b00bfb 100644
--- a/urlmatch.h
+++ b/urlmatch.h
@@ -71,5 +71,6 @@ struct urlmatch_config {
}
int urlmatch_config_entry(const char *var, const char *value, void *cb);
+void urlmatch_config_release(struct urlmatch_config *config);
#endif /* URL_MATCH_H */