git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 04/14] urlmatch.c: add and use a *_release() function

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Mar 4, 2022, 18:32 UTC
Message-ID
<patch-v2-04.14-d51f6ae0963-20220304T182902Z-avarab@gmail.com>
In-Reply-To
<cover-v2-00.14-00000000000-20220304T182902Z-avarab@gmail.com>

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>
---
 builtin/config.c | 2 +-
 credential.c     | 1 +
 urlmatch.c       | 5 +++++
 urlmatch.h       | 1 +
 4 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/builtin/config.c b/builtin/config.c
index 542d8d02b2b..ebec61868be 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 e7240f3f636..f6389a50684 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 03ad3f30a9c..b615adc923a 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 34a3ba6d197..9f40b00bfb8 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 */
-- 
2.35.1.1248.gb68c9165ad8
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 25 of 37 in “tree-wide: small fixes for memory leaks”
  1. 00/14 tree-wide: small fixes for memory leaksÆvar Arnfjörð Bjarmason, Mar 2, 2022
  2. 01/14 index-pack: fix memory leaksÆvar Arnfjörð Bjarmason, Mar 2, 2022
  3. Derrick StoleeMar 2, 2022
  4. Ævar Arnfjörð BjarmasonMar 3, 2022
  5. 02/14 merge-base: free() allocated "struct commit **" listÆvar Arnfjörð Bjarmason, Mar 2, 2022
  6. 03/14 diff.c: free "buf" in diff_words_flush()Ævar Arnfjörð Bjarmason, Mar 2, 2022
  7. 05/14 remote-curl.c: free memory in cmd_main()Ævar Arnfjörð Bjarmason, Mar 2, 2022
  8. 04/14 urlmatch.c: add and use a *_release() functionÆvar Arnfjörð Bjarmason, Mar 2, 2022
  9. 06/14 bundle: call strvec_clear() on allocated strvecÆvar Arnfjörð Bjarmason, Mar 2, 2022
  10. 08/14 submodule--helper: fix trivial leak in module_add()Ævar Arnfjörð Bjarmason, Mar 2, 2022
  11. 07/14 transport: stop needlessly copying bundle header referencesÆvar Arnfjörð Bjarmason, Mar 2, 2022
  12. Derrick StoleeMar 2, 2022
  13. Ævar Arnfjörð BjarmasonMar 3, 2022
  14. 09/14 commit-graph: fix memory leak in misused string_list APIÆvar Arnfjörð Bjarmason, Mar 2, 2022
  15. 10/14 commit-graph: stop fill_oids_from_packs() progress on error and free()Ævar Arnfjörð Bjarmason, Mar 2, 2022
  16. 11/14 lockfile API users: simplify and don't leak "path"Ævar Arnfjörð Bjarmason, Mar 2, 2022
  17. 12/14 range-diff: plug memory leak in common invocationÆvar Arnfjörð Bjarmason, Mar 2, 2022
  18. 14/14 repository.c: free the "path cache" in repo_clear()Ævar Arnfjörð Bjarmason, Mar 2, 2022
  19. 13/14 range-diff: plug memory leak in read_patches()Ævar Arnfjörð Bjarmason, Mar 2, 2022
  20. Derrick StoleeMar 2, 2022
  21. 00/14 tree-wide: small fixes for memory leaksÆvar Arnfjörð Bjarmason, Mar 4, 2022
  22. 01/14 index-pack: fix memory leaksÆvar Arnfjörð Bjarmason, Mar 4, 2022
  23. 02/14 merge-base: free() allocated "struct commit **" listÆvar Arnfjörð Bjarmason, Mar 4, 2022
  24. 03/14 diff.c: free "buf" in diff_words_flush()Ævar Arnfjörð Bjarmason, Mar 4, 2022
  25. 04/14 urlmatch.c: add and use a *_release() functionÆvar Arnfjörð Bjarmason, Mar 4, 2022
  26. 05/14 remote-curl.c: free memory in cmd_main()Ævar Arnfjörð Bjarmason, Mar 4, 2022
  27. 06/14 bundle: call strvec_clear() on allocated strvecÆvar Arnfjörð Bjarmason, Mar 4, 2022
  28. 07/14 transport: stop needlessly copying bundle header referencesÆvar Arnfjörð Bjarmason, Mar 4, 2022
  29. Derrick StoleeMar 4, 2022
  30. 09/14 commit-graph: fix memory leak in misused string_list APIÆvar Arnfjörð Bjarmason, Mar 4, 2022
  31. 12/14 range-diff: plug memory leak in common invocationÆvar Arnfjörð Bjarmason, Mar 4, 2022
  32. 13/14 range-diff: plug memory leak in read_patches()Ævar Arnfjörð Bjarmason, Mar 4, 2022
  33. 11/14 lockfile API users: simplify and don't leak "path"Ævar Arnfjörð Bjarmason, Mar 4, 2022
  34. 14/14 repository.c: free the "path cache" in repo_clear()Ævar Arnfjörð Bjarmason, Mar 4, 2022
  35. 10/14 commit-graph: stop fill_oids_from_packs() progress on error and free()Ævar Arnfjörð Bjarmason, Mar 4, 2022
  36. 08/14 submodule--helper: fix trivial leak in module_add()Ævar Arnfjörð Bjarmason, Mar 4, 2022
  37. Derrick StoleeMar 4, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.