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

Re: [PATCH v4 19/19] push: free_refs() the "local_refs" in set_refspecs()

From
René Scharfe <l.s.r@web.de>
Date
Jan 17, 2023, 19:58 UTC
Message-ID
<c0c07b89-7eaf-21cd-748e-e14ea57f09fd@web.de>
In-Reply-To
<patch-v4-19.19-b3aee41d0b4-20230117T151202Z-avarab@gmail.com>
Am 17.01.23 um 18:11 schrieb Ævar Arnfjörð Bjarmason:
Show 30 quoted lines
> Fix a memory leak that's been with us since this code was added in
> ca02465b413 (push: use remote.$name.push as a refmap, 2013-12-03).
>
> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> ---
>  builtin/push.c                          | 1 +
>  t/t1416-ref-transaction-hooks.sh        | 1 +
>  t/t2402-worktree-list.sh                | 1 +
>  t/t5504-fetch-receive-strict.sh         | 1 +
>  t/t5523-push-upstream.sh                | 1 +
>  t/t5529-push-errors.sh                  | 2 ++
>  t/t5546-receive-limits.sh               | 2 ++
>  t/t5547-push-quarantine.sh              | 2 ++
>  t/t5606-clone-options.sh                | 1 +
>  t/t5810-proto-disable-local.sh          | 2 ++
>  t/t5813-proto-disable-ssh.sh            | 2 ++
>  t/t7409-submodule-detached-work-tree.sh | 1 +
>  t/t7416-submodule-dash-url.sh           | 2 ++
>  t/t7450-bad-git-dotfiles.sh             | 2 ++
>  14 files changed, 21 insertions(+)
>
> diff --git a/builtin/push.c b/builtin/push.c
> index 60ac8017e52..f48e4c6a856 100644
> --- a/builtin/push.c
> +++ b/builtin/push.c
> @@ -129,6 +129,7 @@ static void set_refspecs(const char **refs, int nr, const char *repo)
>  		} else
>  			refspec_append(&rs, ref);
>  	}
> +	free_refs(local_refs);
OK.

This can still leak local_refs if remote_get() returns NULL and lazy- loading is done over and over. Unlikely to occur in the wild, I bet -- who pushes without a remote? Does it make sense to also check local_refs for NULL already in this patch or is it worth its own series? Not sure.

remote is still leaked if it isn't NULL, though. We'd need to export remote_clear() to release it properly, no? And shouldn't remotes_remote_get_1() call remote_clear() itself before returning NULL? Not simple, separate series.

Show 166 quoted lines
>  }
>
>  static int push_url_of_remote(struct remote *remote, const char ***url_p)
> diff --git a/t/t1416-ref-transaction-hooks.sh b/t/t1416-ref-transaction-hooks.sh
> index 27731722a5b..b32ca798f9f 100755
> --- a/t/t1416-ref-transaction-hooks.sh
> +++ b/t/t1416-ref-transaction-hooks.sh
> @@ -5,6 +5,7 @@ test_description='reference transaction hooks'
>  GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
>  export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
>
> +TEST_PASSES_SANITIZE_LEAK=true
>  . ./test-lib.sh
>
>  test_expect_success setup '
> diff --git a/t/t2402-worktree-list.sh b/t/t2402-worktree-list.sh
> index 79e0fce2d90..9ad9be0c208 100755
> --- a/t/t2402-worktree-list.sh
> +++ b/t/t2402-worktree-list.sh
> @@ -5,6 +5,7 @@ test_description='test git worktree list'
>  GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
>  export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
>
> +TEST_PASSES_SANITIZE_LEAK=true
>  . ./test-lib.sh
>
>  test_expect_success 'setup' '
> diff --git a/t/t5504-fetch-receive-strict.sh b/t/t5504-fetch-receive-strict.sh
> index ac4099ca893..14e8af1f3b7 100755
> --- a/t/t5504-fetch-receive-strict.sh
> +++ b/t/t5504-fetch-receive-strict.sh
> @@ -4,6 +4,7 @@ test_description='fetch/receive strict mode'
>  GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
>  export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
>
> +TEST_PASSES_SANITIZE_LEAK=true
>  . ./test-lib.sh
>
>  test_expect_success 'setup and inject "corrupt or missing" object' '
> diff --git a/t/t5523-push-upstream.sh b/t/t5523-push-upstream.sh
> index fdb42920564..c9acc076353 100755
> --- a/t/t5523-push-upstream.sh
> +++ b/t/t5523-push-upstream.sh
> @@ -4,6 +4,7 @@ test_description='push with --set-upstream'
>  GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
>  export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
>
> +TEST_PASSES_SANITIZE_LEAK=true
>  . ./test-lib.sh
>  . "$TEST_DIRECTORY"/lib-terminal.sh
>
> diff --git a/t/t5529-push-errors.sh b/t/t5529-push-errors.sh
> index ce85fd30ad1..0247137cb36 100755
> --- a/t/t5529-push-errors.sh
> +++ b/t/t5529-push-errors.sh
> @@ -1,6 +1,8 @@
>  #!/bin/sh
>
>  test_description='detect some push errors early (before contacting remote)'
> +
> +TEST_PASSES_SANITIZE_LEAK=true
>  . ./test-lib.sh
>
>  test_expect_success 'setup commits' '
> diff --git a/t/t5546-receive-limits.sh b/t/t5546-receive-limits.sh
> index 0b0e987fdb7..eed3c9d81ab 100755
> --- a/t/t5546-receive-limits.sh
> +++ b/t/t5546-receive-limits.sh
> @@ -1,6 +1,8 @@
>  #!/bin/sh
>
>  test_description='check receive input limits'
> +
> +TEST_PASSES_SANITIZE_LEAK=true
>  . ./test-lib.sh
>
>  # Let's run tests with different unpack limits: 1 and 10000
> diff --git a/t/t5547-push-quarantine.sh b/t/t5547-push-quarantine.sh
> index 1876fb34e51..9f899b8c7d7 100755
> --- a/t/t5547-push-quarantine.sh
> +++ b/t/t5547-push-quarantine.sh
> @@ -1,6 +1,8 @@
>  #!/bin/sh
>
>  test_description='check quarantine of objects during push'
> +
> +TEST_PASSES_SANITIZE_LEAK=true
>  . ./test-lib.sh
>
>  test_expect_success 'create picky dest repo' '
> diff --git a/t/t5606-clone-options.sh b/t/t5606-clone-options.sh
> index cf221e92c4d..27f9f776389 100755
> --- a/t/t5606-clone-options.sh
> +++ b/t/t5606-clone-options.sh
> @@ -4,6 +4,7 @@ test_description='basic clone options'
>  GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
>  export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
>
> +TEST_PASSES_SANITIZE_LEAK=true
>  . ./test-lib.sh
>
>  test_expect_success 'setup' '
> diff --git a/t/t5810-proto-disable-local.sh b/t/t5810-proto-disable-local.sh
> index c1ef99b85c2..862610256fb 100755
> --- a/t/t5810-proto-disable-local.sh
> +++ b/t/t5810-proto-disable-local.sh
> @@ -1,6 +1,8 @@
>  #!/bin/sh
>
>  test_description='test disabling of local paths in clone/fetch'
> +
> +TEST_PASSES_SANITIZE_LEAK=true
>  . ./test-lib.sh
>  . "$TEST_DIRECTORY/lib-proto-disable.sh"
>
> diff --git a/t/t5813-proto-disable-ssh.sh b/t/t5813-proto-disable-ssh.sh
> index 3f084ee3065..2e975dc70ec 100755
> --- a/t/t5813-proto-disable-ssh.sh
> +++ b/t/t5813-proto-disable-ssh.sh
> @@ -1,6 +1,8 @@
>  #!/bin/sh
>
>  test_description='test disabling of git-over-ssh in clone/fetch'
> +
> +TEST_PASSES_SANITIZE_LEAK=true
>  . ./test-lib.sh
>  . "$TEST_DIRECTORY/lib-proto-disable.sh"
>
> diff --git a/t/t7409-submodule-detached-work-tree.sh b/t/t7409-submodule-detached-work-tree.sh
> index 374ed481e9c..574a6fc526e 100755
> --- a/t/t7409-submodule-detached-work-tree.sh
> +++ b/t/t7409-submodule-detached-work-tree.sh
> @@ -13,6 +13,7 @@ TEST_NO_CREATE_REPO=1
>  GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
>  export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
>
> +TEST_PASSES_SANITIZE_LEAK=true
>  . ./test-lib.sh
>
>  test_expect_success 'setup' '
> diff --git a/t/t7416-submodule-dash-url.sh b/t/t7416-submodule-dash-url.sh
> index 3ebd9859814..7cf72b9a076 100755
> --- a/t/t7416-submodule-dash-url.sh
> +++ b/t/t7416-submodule-dash-url.sh
> @@ -1,6 +1,8 @@
>  #!/bin/sh
>
>  test_description='check handling of disallowed .gitmodule urls'
> +
> +TEST_PASSES_SANITIZE_LEAK=true
>  . ./test-lib.sh
>
>  test_expect_success 'setup' '
> diff --git a/t/t7450-bad-git-dotfiles.sh b/t/t7450-bad-git-dotfiles.sh
> index ba1f569bcbb..0d0c3f2c683 100755
> --- a/t/t7450-bad-git-dotfiles.sh
> +++ b/t/t7450-bad-git-dotfiles.sh
> @@ -12,6 +12,8 @@ Such as:
>
>    - symlinked .gitmodules, etc
>  '
> +
> +TEST_PASSES_SANITIZE_LEAK=true
>  . ./test-lib.sh
>  . "$TEST_DIRECTORY"/lib-pack.sh
>
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 117 of 193 in “leak fixes: various simple leak fixes”
  1. 00/20 leak fixes: various simple leak fixesÆvar Arnfjörð Bjarmason, Dec 28, 2022
  2. 01/20 t6021: mark as passing with SANITIZE=leakÆvar Arnfjörð Bjarmason, Dec 28, 2022
  3. 02/20 tests: mark tests as passing with SANITIZE=leakÆvar Arnfjörð Bjarmason, Dec 28, 2022
  4. 03/20 bundle.c: don't leak the "args" in the "struct child_process"Ævar Arnfjörð Bjarmason, Dec 28, 2022
  5. 04/20 commit-graph: use free() instead of UNLEAK()Ævar Arnfjörð Bjarmason, Dec 28, 2022
  6. René ScharfeDec 28, 2022
  7. 05/20 clone: use free() instead of UNLEAK()Ævar Arnfjörð Bjarmason, Dec 28, 2022
  8. René ScharfeDec 28, 2022
  9. Junio C HamanoDec 29, 2022
  10. Ævar Arnfjörð BjarmasonDec 29, 2022
  11. 07/20 stash: fix a "struct pathspec" leakÆvar Arnfjörð Bjarmason, Dec 28, 2022
  12. René ScharfeDec 28, 2022
  13. Junio C HamanoDec 29, 2022
  14. 06/20 archive.c: call clear_pathspec() in write_archive()Ævar Arnfjörð Bjarmason, Dec 28, 2022
  15. 08/20 reset: fix cmd_reset() leaks with a clear_pathspec() callÆvar Arnfjörð Bjarmason, Dec 28, 2022
  16. Junio C HamanoDec 29, 2022
  17. 12/20 http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}()Ævar Arnfjörð Bjarmason, Dec 28, 2022
  18. René ScharfeDec 28, 2022
  19. Junio C HamanoDec 29, 2022
  20. René ScharfeDec 29, 2022
  21. 09/20 name-rev: don't xstrdup() an already dup'd stringÆvar Arnfjörð Bjarmason, Dec 28, 2022
  22. René ScharfeDec 28, 2022
  23. Junio C HamanoDec 29, 2022
  24. 10/20 repack: fix leaks on error with "goto cleanup"Ævar Arnfjörð Bjarmason, Dec 28, 2022
  25. 11/20 worktree: fix a trivial leak in prune_worktrees()Ævar Arnfjörð Bjarmason, Dec 28, 2022
  26. René ScharfeDec 28, 2022
  27. 13/20 commit-graph: fix a parse_options_concat() leakÆvar Arnfjörð Bjarmason, Dec 28, 2022
  28. 14/20 show-branch: free() allocated "head" before returnÆvar Arnfjörð Bjarmason, Dec 28, 2022
  29. 16/20 builtin/merge.c: free "&buf" on "Your local changes..." errorÆvar Arnfjörð Bjarmason, Dec 28, 2022
  30. René ScharfeDec 28, 2022
  31. 17/20 connected.c: free(new_pack) in check_connected()Ævar Arnfjörð Bjarmason, Dec 28, 2022
  32. 18/20 object-file.c: free the "t.tag" in check_tag()Ævar Arnfjörð Bjarmason, Dec 28, 2022
  33. René ScharfeDec 28, 2022
  34. 15/20 builtin/merge.c: always free "struct strbuf msg"Ævar Arnfjörð Bjarmason, Dec 28, 2022
  35. René ScharfeDec 28, 2022
  36. 19/20 grep.c: make it easier to extend free_grep_patterns()Ævar Arnfjörð Bjarmason, Dec 28, 2022
  37. 20/20 grep API: plug memory leaks by freeing "header_list"Ævar Arnfjörð Bjarmason, Dec 28, 2022
  38. Eric SunshineDec 28, 2022
  39. René ScharfeDec 28, 2022
  40. 00/20 leak fixes: various simple leak fixesÆvar Arnfjörð Bjarmason, Dec 30, 2022
  41. 01/20 tests: mark tests as passing with SANITIZE=leakÆvar Arnfjörð Bjarmason, Dec 30, 2022
  42. 03/20 commit-graph: use free() instead of UNLEAK()Ævar Arnfjörð Bjarmason, Dec 30, 2022
  43. René ScharfeDec 30, 2022
  44. 02/20 bundle.c: don't leak the "args" in the "struct child_process"Ævar Arnfjörð Bjarmason, Dec 30, 2022
  45. 06/20 name-rev: don't xstrdup() an already dup'd stringÆvar Arnfjörð Bjarmason, Dec 30, 2022
  46. 05/20 various: add missing clear_pathspec(), fix leaksÆvar Arnfjörð Bjarmason, Dec 30, 2022
  47. 04/20 clone: use free() instead of UNLEAK()Ævar Arnfjörð Bjarmason, Dec 30, 2022
  48. 09/20 http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main()Ævar Arnfjörð Bjarmason, Dec 30, 2022
  49. 08/20 worktree: fix a trivial leak in prune_worktrees()Ævar Arnfjörð Bjarmason, Dec 30, 2022
  50. 07/20 repack: fix leaks on error with "goto cleanup"Ævar Arnfjörð Bjarmason, Dec 30, 2022
  51. 10/20 http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}()Ævar Arnfjörð Bjarmason, Dec 30, 2022
  52. 12/20 show-branch: free() allocated "head" before returnÆvar Arnfjörð Bjarmason, Dec 30, 2022
  53. 13/20 builtin/merge.c: always free "struct strbuf msg"Ævar Arnfjörð Bjarmason, Dec 30, 2022
  54. 15/20 connected.c: free(new_pack) in check_connected()Ævar Arnfjörð Bjarmason, Dec 30, 2022
  55. René ScharfeDec 30, 2022
  56. Ævar Arnfjörð BjarmasonJan 10, 2023
  57. 11/20 commit-graph: fix a parse_options_concat() leakÆvar Arnfjörð Bjarmason, Dec 30, 2022
  58. 14/20 builtin/merge.c: free "&buf" on "Your local changes..." errorÆvar Arnfjörð Bjarmason, Dec 30, 2022
  59. 16/20 object-file.c: release the "tag" in check_tag()Ævar Arnfjörð Bjarmason, Dec 30, 2022
  60. 19/20 receive-pack: free() the "ref_name" in "struct command"Ævar Arnfjörð Bjarmason, Dec 30, 2022
  61. 17/20 grep.c: refactor free_grep_patterns()Ævar Arnfjörð Bjarmason, Dec 30, 2022
  62. 18/20 grep API: plug memory leaks by freeing "header_list"Ævar Arnfjörð Bjarmason, Dec 30, 2022
  63. 20/20 push: free_refs() the "local_refs" in set_refspecs()Ævar Arnfjörð Bjarmason, Dec 30, 2022
  64. 00/19 leak fixes: various simple leak fixesÆvar Arnfjörð Bjarmason, Jan 10, 2023
  65. 01/19 tests: mark tests as passing with SANITIZE=leakÆvar Arnfjörð Bjarmason, Jan 10, 2023
  66. 02/19 bundle.c: don't leak the "args" in the "struct child_process"Ævar Arnfjörð Bjarmason, Jan 10, 2023
  67. 03/19 commit-graph: use free_commit_graph() instead of UNLEAK()Ævar Arnfjörð Bjarmason, Jan 10, 2023
  68. 04/19 clone: use free() instead of UNLEAK()Ævar Arnfjörð Bjarmason, Jan 10, 2023
  69. 06/19 name-rev: don't xstrdup() an already dup'd stringÆvar Arnfjörð Bjarmason, Jan 10, 2023
  70. 05/19 various: add missing clear_pathspec(), fix leaksÆvar Arnfjörð Bjarmason, Jan 10, 2023
  71. 08/19 worktree: fix a trivial leak in prune_worktrees()Ævar Arnfjörð Bjarmason, Jan 10, 2023
  72. 09/19 http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main()Ævar Arnfjörð Bjarmason, Jan 10, 2023
  73. 07/19 repack: fix leaks on error with "goto cleanup"Ævar Arnfjörð Bjarmason, Jan 10, 2023
  74. 12/19 show-branch: free() allocated "head" before returnÆvar Arnfjörð Bjarmason, Jan 10, 2023
  75. 10/19 http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}()Ævar Arnfjörð Bjarmason, Jan 10, 2023
  76. 11/19 commit-graph: fix a parse_options_concat() leakÆvar Arnfjörð Bjarmason, Jan 10, 2023
  77. 13/19 builtin/merge.c: always free "struct strbuf msg"Ævar Arnfjörð Bjarmason, Jan 10, 2023
  78. René ScharfeJan 10, 2023
  79. Junio C HamanoJan 13, 2023
  80. 14/19 builtin/merge.c: free "&buf" on "Your local changes..." errorÆvar Arnfjörð Bjarmason, Jan 10, 2023
  81. 15/19 object-file.c: release the "tag" in check_tag()Ævar Arnfjörð Bjarmason, Jan 10, 2023
  82. 16/19 grep.c: refactor free_grep_patterns()Ævar Arnfjörð Bjarmason, Jan 10, 2023
  83. 17/19 grep API: plug memory leaks by freeing "header_list"Ævar Arnfjörð Bjarmason, Jan 10, 2023
  84. 18/19 receive-pack: free() the "ref_name" in "struct command"Ævar Arnfjörð Bjarmason, Jan 10, 2023
  85. 19/19 push: free_refs() the "local_refs" in set_refspecs()Ævar Arnfjörð Bjarmason, Jan 10, 2023
  86. 00/19 leak fixes: various simple leak fixesÆvar Arnfjörð Bjarmason, Jan 17, 2023
  87. 03/19 commit-graph: use free_commit_graph() instead of UNLEAK()Ævar Arnfjörð Bjarmason, Jan 17, 2023
  88. 04/19 clone: use free() instead of UNLEAK()Ævar Arnfjörð Bjarmason, Jan 17, 2023
  89. 01/19 tests: mark tests as passing with SANITIZE=leakÆvar Arnfjörð Bjarmason, Jan 17, 2023
  90. 02/19 bundle.c: don't leak the "args" in the "struct child_process"Ævar Arnfjörð Bjarmason, Jan 17, 2023
  91. 05/19 various: add missing clear_pathspec(), fix leaksÆvar Arnfjörð Bjarmason, Jan 17, 2023
  92. 06/19 name-rev: don't xstrdup() an already dup'd stringÆvar Arnfjörð Bjarmason, Jan 17, 2023
  93. 07/19 repack: fix leaks on error with "goto cleanup"Ævar Arnfjörð Bjarmason, Jan 17, 2023
  94. 08/19 worktree: fix a trivial leak in prune_worktrees()Ævar Arnfjörð Bjarmason, Jan 17, 2023
  95. Junio C HamanoJan 18, 2023
  96. 20/19 branch: the ref_filter is not cleanedJunio C Hamano, Jan 18, 2023
  97. Ævar Arnfjörð BjarmasonJan 18, 2023
  98. Junio C HamanoJan 18, 2023
  99. Ævar Arnfjörð BjarmasonJan 18, 2023
  100. Junio C HamanoJan 18, 2023
  101. 09/19 http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main()Ævar Arnfjörð Bjarmason, Jan 17, 2023
  102. 11/19 commit-graph: fix a parse_options_concat() leakÆvar Arnfjörð Bjarmason, Jan 17, 2023
  103. 10/19 http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}()Ævar Arnfjörð Bjarmason, Jan 17, 2023
  104. 12/19 show-branch: free() allocated "head" before returnÆvar Arnfjörð Bjarmason, Jan 17, 2023
  105. 14/19 builtin/merge.c: free "&buf" on "Your local changes..." errorÆvar Arnfjörð Bjarmason, Jan 17, 2023
  106. 13/19 builtin/merge.c: use fixed strings, not "strbuf", fix leakÆvar Arnfjörð Bjarmason, Jan 17, 2023
  107. 16/19 grep.c: refactor free_grep_patterns()Ævar Arnfjörð Bjarmason, Jan 17, 2023
  108. 15/19 object-file.c: release the "tag" in check_tag()Ævar Arnfjörð Bjarmason, Jan 17, 2023
  109. René ScharfeJan 17, 2023
  110. Jeff KingJan 18, 2023
  111. René ScharfeJan 18, 2023
  112. Jeff KingJan 18, 2023
  113. René ScharfeJan 18, 2023
  114. Jeff KingJan 18, 2023
  115. 17/19 grep API: plug memory leaks by freeing "header_list"Ævar Arnfjörð Bjarmason, Jan 17, 2023
  116. 19/19 push: free_refs() the "local_refs" in set_refspecs()Ævar Arnfjörð Bjarmason, Jan 17, 2023
  117. René ScharfeJan 17, 2023
  118. 18/19 receive-pack: free() the "ref_name" in "struct command"Ævar Arnfjörð Bjarmason, Jan 17, 2023
  119. 00/19 leak fixes: various simple leak fixesÆvar Arnfjörð Bjarmason, Jan 18, 2023
  120. 02/19 bundle.c: don't leak the "args" in the "struct child_process"Ævar Arnfjörð Bjarmason, Jan 18, 2023
  121. Elijah NewrenJan 26, 2023
  122. 01/19 tests: mark tests as passing with SANITIZE=leakÆvar Arnfjörð Bjarmason, Jan 18, 2023
  123. 07/19 repack: fix leaks on error with "goto cleanup"Ævar Arnfjörð Bjarmason, Jan 18, 2023
  124. Elijah NewrenJan 26, 2023
  125. 06/19 name-rev: don't xstrdup() an already dup'd stringÆvar Arnfjörð Bjarmason, Jan 18, 2023
  126. 03/19 commit-graph: use free_commit_graph() instead of UNLEAK()Ævar Arnfjörð Bjarmason, Jan 18, 2023
  127. 04/19 clone: use free() instead of UNLEAK()Ævar Arnfjörð Bjarmason, Jan 18, 2023
  128. 05/19 various: add missing clear_pathspec(), fix leaksÆvar Arnfjörð Bjarmason, Jan 18, 2023
  129. 10/19 http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}()Ævar Arnfjörð Bjarmason, Jan 18, 2023
  130. 08/19 worktree: fix a trivial leak in prune_worktrees()Ævar Arnfjörð Bjarmason, Jan 18, 2023
  131. 11/19 commit-graph: fix a parse_options_concat() leakÆvar Arnfjörð Bjarmason, Jan 18, 2023
  132. 12/19 show-branch: free() allocated "head" before returnÆvar Arnfjörð Bjarmason, Jan 18, 2023
  133. 09/19 http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main()Ævar Arnfjörð Bjarmason, Jan 18, 2023
  134. 17/19 grep API: plug memory leaks by freeing "header_list"Ævar Arnfjörð Bjarmason, Jan 18, 2023
  135. Elijah NewrenJan 26, 2023
  136. 15/19 object-file.c: release the "tag" in check_tag()Ævar Arnfjörð Bjarmason, Jan 18, 2023
  137. 19/19 push: free_refs() the "local_refs" in set_refspecs()Ævar Arnfjörð Bjarmason, Jan 18, 2023
  138. Elijah NewrenJan 26, 2023
  139. 13/19 builtin/merge.c: use fixed strings, not "strbuf", fix leakÆvar Arnfjörð Bjarmason, Jan 18, 2023
  140. 16/19 grep.c: refactor free_grep_patterns()Ævar Arnfjörð Bjarmason, Jan 18, 2023
  141. Elijah NewrenJan 26, 2023
  142. 14/19 builtin/merge.c: free "&buf" on "Your local changes..." errorÆvar Arnfjörð Bjarmason, Jan 18, 2023
  143. Elijah NewrenJan 26, 2023
  144. 18/19 receive-pack: free() the "ref_name" in "struct command"Ævar Arnfjörð Bjarmason, Jan 18, 2023
  145. Elijah NewrenJan 26, 2023
  146. 00/19 leak fixes: various simple leak fixesÆvar Arnfjörð Bjarmason, Feb 2, 2023
  147. 01/19 tests: mark tests as passing with SANITIZE=leakÆvar Arnfjörð Bjarmason, Feb 2, 2023
  148. 03/19 commit-graph: use free_commit_graph() instead of UNLEAK()Ævar Arnfjörð Bjarmason, Feb 2, 2023
  149. 02/19 bundle.c: don't leak the "args" in the "struct child_process"Ævar Arnfjörð Bjarmason, Feb 2, 2023
  150. 04/19 clone: use free() instead of UNLEAK()Ævar Arnfjörð Bjarmason, Feb 2, 2023
  151. 08/19 worktree: fix a trivial leak in prune_worktrees()Ævar Arnfjörð Bjarmason, Feb 2, 2023
  152. 05/19 various: add missing clear_pathspec(), fix leaksÆvar Arnfjörð Bjarmason, Feb 2, 2023
  153. 07/19 repack: fix leaks on error with "goto cleanup"Ævar Arnfjörð Bjarmason, Feb 2, 2023
  154. 09/19 http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main()Ævar Arnfjörð Bjarmason, Feb 2, 2023
  155. 11/19 commit-graph: fix a parse_options_concat() leakÆvar Arnfjörð Bjarmason, Feb 2, 2023
  156. 10/19 http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}()Ævar Arnfjörð Bjarmason, Feb 2, 2023
  157. 06/19 name-rev: don't xstrdup() an already dup'd stringÆvar Arnfjörð Bjarmason, Feb 2, 2023
  158. 12/19 show-branch: free() allocated "head" before returnÆvar Arnfjörð Bjarmason, Feb 2, 2023
  159. 13/19 builtin/merge.c: use fixed strings, not "strbuf", fix leakÆvar Arnfjörð Bjarmason, Feb 2, 2023
  160. 14/19 builtin/merge.c: free "&buf" on "Your local changes..." errorÆvar Arnfjörð Bjarmason, Feb 2, 2023
  161. 15/19 grep.c: refactor free_grep_patterns()Ævar Arnfjörð Bjarmason, Feb 2, 2023
  162. 16/19 grep API: plug memory leaks by freeing "header_list"Ævar Arnfjörð Bjarmason, Feb 2, 2023
  163. 18/19 push: refactor refspec_append_mapped() for subsequent leak-fixÆvar Arnfjörð Bjarmason, Feb 2, 2023
  164. Junio C HamanoFeb 2, 2023
  165. Ævar Arnfjörð BjarmasonFeb 6, 2023
  166. Junio C HamanoFeb 6, 2023
  167. 17/19 receive-pack: free() the "ref_name" in "struct command"Ævar Arnfjörð Bjarmason, Feb 2, 2023
  168. Junio C HamanoFeb 2, 2023
  169. 19/19 push: free_refs() the "local_refs" in set_refspecs()Ævar Arnfjörð Bjarmason, Feb 2, 2023
  170. Junio C HamanoFeb 2, 2023
  171. Ævar Arnfjörð BjarmasonFeb 6, 2023
  172. 00/19 leak fixes: various simple leak fixesÆvar Arnfjörð Bjarmason, Feb 6, 2023
  173. 01/19 tests: mark tests as passing with SANITIZE=leakÆvar Arnfjörð Bjarmason, Feb 6, 2023
  174. 02/19 bundle.c: don't leak the "args" in the "struct child_process"Ævar Arnfjörð Bjarmason, Feb 6, 2023
  175. 03/19 commit-graph: use free_commit_graph() instead of UNLEAK()Ævar Arnfjörð Bjarmason, Feb 6, 2023
  176. 04/19 clone: use free() instead of UNLEAK()Ævar Arnfjörð Bjarmason, Feb 6, 2023
  177. 06/19 name-rev: don't xstrdup() an already dup'd stringÆvar Arnfjörð Bjarmason, Feb 6, 2023
  178. 05/19 various: add missing clear_pathspec(), fix leaksÆvar Arnfjörð Bjarmason, Feb 6, 2023
  179. 07/19 repack: fix leaks on error with "goto cleanup"Ævar Arnfjörð Bjarmason, Feb 6, 2023
  180. 08/19 worktree: fix a trivial leak in prune_worktrees()Ævar Arnfjörð Bjarmason, Feb 6, 2023
  181. 09/19 http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main()Ævar Arnfjörð Bjarmason, Feb 6, 2023
  182. 11/19 commit-graph: fix a parse_options_concat() leakÆvar Arnfjörð Bjarmason, Feb 6, 2023
  183. 10/19 http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}()Ævar Arnfjörð Bjarmason, Feb 6, 2023
  184. 12/19 show-branch: free() allocated "head" before returnÆvar Arnfjörð Bjarmason, Feb 6, 2023
  185. 13/19 builtin/merge.c: use fixed strings, not "strbuf", fix leakÆvar Arnfjörð Bjarmason, Feb 6, 2023
  186. 15/19 grep.c: refactor free_grep_patterns()Ævar Arnfjörð Bjarmason, Feb 6, 2023
  187. 14/19 builtin/merge.c: free "&buf" on "Your local changes..." errorÆvar Arnfjörð Bjarmason, Feb 6, 2023
  188. 16/19 grep API: plug memory leaks by freeing "header_list"Ævar Arnfjörð Bjarmason, Feb 6, 2023
  189. 18/19 push: refactor refspec_append_mapped() for subsequent leak-fixÆvar Arnfjörð Bjarmason, Feb 6, 2023
  190. 17/19 receive-pack: release the linked "struct command *" listÆvar Arnfjörð Bjarmason, Feb 6, 2023
  191. 19/19 push: free_refs() the "local_refs" in set_refspecs()Ævar Arnfjörð Bjarmason, Feb 6, 2023
  192. Junio C HamanoFeb 7, 2023
  193. Elijah NewrenFeb 7, 2023

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.