From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "René Scharfe" <l.s.r@web.de>,
"Junio C Hamano" <gitster@pobox.com>,
"Eric Sunshine" <sunshine@sunshineco.com>,
"Elijah Newren" <newren@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH v6 00/19] leak fixes: various simple leak fixes
Date: Thu, 2 Feb 2023 10:52:31 +0100 [thread overview]
Message-ID: <cover-v6-00.19-00000000000-20230202T094704Z-avarab@gmail.com> (raw)
In-Reply-To: <cover-v5-00.19-00000000000-20230118T120334Z-avarab@gmail.com>
See
https://lore.kernel.org/git/cover-v5-00.19-00000000000-20230118T120334Z-avarab@gmail.com/
for the v5. Changes since then:
* Rebased on master, the recent "fsck" changes made the check_tag()
patch here redundant, and made various existing tests leak-free,
which we now mark as such.
* Took major rewrites of commit messages from Elijah, thanks. Added a
corresponding Helped-by footer to those. Fixed other typos etc. in
commit messages.
* Add a new 18/19 which addreses the TODO issue René & Elijah pointed
out in previous rounds.
I was hoping to keep larger changes like that out of this topic, but
if we need to explain with a "FIXME" comment or similar what exactly
we need to fix here (as was suggested), then we might as well just
fix it instead.
* The subsequent free_refs() patch is the same, but we now explain why
we're not leaking the "remote" (it's free'd by
"the_repository->remote_state" cleanup).
CI & branch for this at:
https://github.com/avar/git/tree/avar/leak-fixes-more-misc-trivial-6
Ævar Arnfjörð Bjarmason (19):
tests: mark tests as passing with SANITIZE=leak
bundle.c: don't leak the "args" in the "struct child_process"
commit-graph: use free_commit_graph() instead of UNLEAK()
clone: use free() instead of UNLEAK()
various: add missing clear_pathspec(), fix leaks
name-rev: don't xstrdup() an already dup'd string
repack: fix leaks on error with "goto cleanup"
worktree: fix a trivial leak in prune_worktrees()
http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main()
http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}()
commit-graph: fix a parse_options_concat() leak
show-branch: free() allocated "head" before return
builtin/merge.c: use fixed strings, not "strbuf", fix leak
builtin/merge.c: free "&buf" on "Your local changes..." error
grep.c: refactor free_grep_patterns()
grep API: plug memory leaks by freeing "header_list"
receive-pack: free() the "ref_name" in "struct command"
push: refactor refspec_append_mapped() for subsequent leak-fix
push: free_refs() the "local_refs" in set_refspecs()
archive.c | 1 +
builtin/clean.c | 1 +
builtin/clone.c | 5 ++--
builtin/commit-graph.c | 10 +++++---
builtin/merge.c | 14 +++++-----
builtin/name-rev.c | 23 ++++++++---------
builtin/push.c | 30 +++++++++++++---------
builtin/receive-pack.c | 10 ++++++++
builtin/repack.c | 13 +++++-----
builtin/reset.c | 11 +++++---
builtin/show-branch.c | 1 +
builtin/stash.c | 7 +++--
builtin/worktree.c | 6 ++---
bundle.c | 6 +++--
grep.c | 15 +++++++----
http-backend.c | 9 +++++--
t/t0023-crlf-am.sh | 1 +
t/t1301-shared-repo.sh | 1 +
t/t1302-repo-version.sh | 1 +
t/t1304-default-acl.sh | 1 +
t/t1408-packed-refs.sh | 1 +
t/t1410-reflog.sh | 1 +
t/t1416-ref-transaction-hooks.sh | 1 +
t/t1451-fsck-buffer.sh | 2 ++
t/t2401-worktree-prune.sh | 1 +
t/t2402-worktree-list.sh | 1 +
t/t2406-worktree-repair.sh | 1 +
t/t3210-pack-refs.sh | 1 +
t/t3800-mktag.sh | 1 +
t/t4152-am-subjects.sh | 2 ++
t/t4254-am-corrupt.sh | 2 ++
t/t4256-am-format-flowed.sh | 1 +
t/t4257-am-interactive.sh | 2 ++
t/t5001-archive-attr.sh | 1 +
t/t5004-archive-corner-cases.sh | 2 ++
t/t5302-pack-index.sh | 2 ++
t/t5306-pack-nobase.sh | 2 ++
t/t5312-prune-corruption.sh | 1 +
t/t5317-pack-objects-filter-objects.sh | 1 +
t/t5330-no-lazy-fetch-with-commit-graph.sh | 1 +
t/t5403-post-checkout-hook.sh | 1 +
t/t5405-send-pack-rewind.sh | 1 +
t/t5406-remote-rejects.sh | 1 +
t/t5502-quickfetch.sh | 1 +
t/t5504-fetch-receive-strict.sh | 1 +
t/t5507-remote-environment.sh | 2 ++
t/t5522-pull-symlink.sh | 1 +
t/t5523-push-upstream.sh | 1 +
t/t5527-fetch-odd-refs.sh | 1 +
t/t5529-push-errors.sh | 2 ++
t/t5546-receive-limits.sh | 2 ++
t/t5547-push-quarantine.sh | 2 ++
t/t5560-http-backend-noserver.sh | 1 +
t/t5561-http-backend.sh | 1 +
t/t5562-http-backend-content-length.sh | 2 ++
t/t5573-pull-verify-signatures.sh | 2 ++
t/t5604-clone-reference.sh | 1 +
t/t5606-clone-options.sh | 1 +
t/t5613-info-alternate.sh | 2 ++
t/t5705-session-id-in-capabilities.sh | 1 +
t/t5810-proto-disable-local.sh | 2 ++
t/t5813-proto-disable-ssh.sh | 2 ++
t/t6011-rev-list-with-bad-commit.sh | 1 +
t/t6014-rev-list-all.sh | 1 +
t/t6021-rev-list-exclude-hidden.sh | 1 +
t/t6439-merge-co-error-msgs.sh | 1 +
t/t6501-freshen-objects.sh | 1 +
t/t7105-reset-patch.sh | 2 ++
t/t7106-reset-unborn-branch.sh | 2 ++
t/t7107-reset-pathspec-file.sh | 1 +
t/t7301-clean-interactive.sh | 1 +
t/t7403-submodule-sync.sh | 1 +
t/t7409-submodule-detached-work-tree.sh | 1 +
t/t7416-submodule-dash-url.sh | 2 ++
t/t7450-bad-git-dotfiles.sh | 2 ++
t/t7612-merge-verify-signatures.sh | 1 +
t/t7701-repack-unpack-unreachable.sh | 1 +
77 files changed, 181 insertions(+), 62 deletions(-)
Range-diff against v5:
1: c47fc0fb637 ! 1: 36da48d4db9 tests: mark tests as passing with SANITIZE=leak
@@ Commit message
t7701-repack-unpack-unreachable.sh: In b0c61be3209 (Merge branch
'rs/reflog-expiry-cleanup', 2022-12-26)
+ - t3800-mktag.sh, t5302-pack-index.sh, t5306-pack-nobase.sh,
+ t5573-pull-verify-signatures.sh, t7612-merge-verify-signatures.sh: In
+ 69bbbe484ba (hash-object: use fsck for object checks, 2023-01-18).
+
+ - t1451-fsck-buffer.sh: In 8e4309038f0 (fsck: do not assume
+ NUL-termination of buffers, 2023-01-19).
+
+ - t6501-freshen-objects.sh: In abf2bb895b4 (Merge branch
+ 'jk/hash-object-fsck', 2023-01-30)
+
1. 9ea1378d046 (Merge branch 'ab/various-leak-fixes', 2022-12-14)
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
@@ t/t0023-crlf-am.sh
cat >patchfile <<\EOF
## t/t1301-shared-repo.sh ##
-@@ t/t1301-shared-repo.sh: test_description='Test shared repository initialization'
- GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
+@@ t/t1301-shared-repo.sh: GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
+ TEST_CREATE_REPO_NO_TEMPLATE=1
+TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
@@ t/t1410-reflog.sh: test_description='Test prune and reflog expiration'
check_have () {
+ ## t/t1451-fsck-buffer.sh ##
+@@ t/t1451-fsck-buffer.sh: so.
+ These tests _might_ catch such overruns in normal use, but should be run with
+ ASan or valgrind for more confidence.
+ '
++
++TEST_PASSES_SANITIZE_LEAK=true
+ . ./test-lib.sh
+
+ # the general idea for tags and commits is to build up the "base" file
+
## t/t3210-pack-refs.sh ##
@@ t/t3210-pack-refs.sh: semantic is still the same.
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
@@ t/t3210-pack-refs.sh: semantic is still the same.
test_expect_success 'enable reflogs' '
+ ## t/t3800-mktag.sh ##
+@@
+
+ test_description='git mktag: tag object verify test'
+
++TEST_PASSES_SANITIZE_LEAK=true
+ . ./test-lib.sh
+
+ ###########################################################
+
## t/t4152-am-subjects.sh ##
@@
#!/bin/sh
@@ t/t4257-am-interactive.sh
test_expect_success 'set up patches to apply' '
+ ## t/t5302-pack-index.sh ##
+@@
+ #
+
+ test_description='pack index with 64-bit offsets and object CRC'
++
++TEST_PASSES_SANITIZE_LEAK=true
+ . ./test-lib.sh
+
+ test_expect_success 'setup' '
+
+ ## t/t5306-pack-nobase.sh ##
+@@
+ test_description='git-pack-object with missing base
+
+ '
++
++TEST_PASSES_SANITIZE_LEAK=true
+ . ./test-lib.sh
+
+ # Create A-B chain
+
## t/t5317-pack-objects-filter-objects.sh ##
@@ t/t5317-pack-objects-filter-objects.sh: test_description='git pack-objects using object filtering'
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
@@ t/t5502-quickfetch.sh: test_description='test quickfetch from local'
test_expect_success setup '
+ ## t/t5573-pull-verify-signatures.sh ##
+@@
+ #!/bin/sh
+
+ test_description='pull signature verification tests'
++
++TEST_PASSES_SANITIZE_LEAK=true
+ . ./test-lib.sh
+ . "$TEST_DIRECTORY/lib-gpg.sh"
+
+
## t/t5604-clone-reference.sh ##
@@ t/t5604-clone-reference.sh: test_description='test clone --reference'
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
@@ t/t6021-rev-list-exclude-hidden.sh
test_expect_success 'setup' '
+ ## t/t6501-freshen-objects.sh ##
+@@ t/t6501-freshen-objects.sh: test_description='check pruning of dependent objects'
+ GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
+ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
+
++TEST_PASSES_SANITIZE_LEAK=true
+ . ./test-lib.sh
+
+ # We care about reachability, so we do not want to use
+
## t/t7403-submodule-sync.sh ##
@@ t/t7403-submodule-sync.sh: These tests exercise the "git submodule sync" subcommand.
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
@@ t/t7403-submodule-sync.sh: These tests exercise the "git submodule sync" subcomm
test_expect_success setup '
+ ## t/t7612-merge-verify-signatures.sh ##
+@@ t/t7612-merge-verify-signatures.sh: test_description='merge signature verification tests'
+ 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-gpg.sh"
+
+
## t/t7701-repack-unpack-unreachable.sh ##
@@ t/t7701-repack-unpack-unreachable.sh: test_description='git repack works correctly'
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
2: 9eb758117dc ! 2: f0f1a388350 bundle.c: don't leak the "args" in the "struct child_process"
@@ Commit message
bundle.c: don't leak the "args" in the "struct child_process"
Fix a leak that's been here since 7366096de9d (bundle API: change
- "flags" to be "extra_index_pack_args", 2021-09-05), if can't verify
- the bundle we didn't call child_process_clear() to clear the "args".
+ "flags" to be "extra_index_pack_args", 2021-09-05). If we can't verify
+ the bundle, we didn't call child_process_clear() to clear the "args".
- But rather than doing that let's verify the bundle before we start
- preparing the process we're going to spawn, if we get an error we
- don't need to push anything to the "args".
+ But rather than adding an additional child_process_clear() call, let's
+ verify the bundle before we start preparing the process we're going to
+ spawn. If we fail to verify, we don't need to push anything to the
+ child_process "args".
+ Helped-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## bundle.c ##
3: 01b6229f18a = 3: cf0dddf4e8c commit-graph: use free_commit_graph() instead of UNLEAK()
4: f4f3aef2861 = 4: 0430c1fec1b clone: use free() instead of UNLEAK()
5: 8d10fbe0b8f = 5: fb2d9875c73 various: add missing clear_pathspec(), fix leaks
6: eb5dc3ac192 = 6: bca659788de name-rev: don't xstrdup() an already dup'd string
7: 1fac90c306a ! 7: 09950d92940 repack: fix leaks on error with "goto cleanup"
@@ Metadata
## Commit message ##
repack: fix leaks on error with "goto cleanup"
- Change cmd_repack() to "goto cleanup" rather than "return ret" on
- error, when we returned we'd potentially skip cleaning up the
- string_lists and other data we'd allocated in this function.
+ In cmd_repack() when we hit an error, replace "return ret" with "goto
+ cleanup" to ensure we free the necessary data structures.
+ Helped-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## builtin/repack.c ##
@@ builtin/repack.c: int cmd_repack(int argc, const char **argv, const char *prefix
+ return ret;
}
+ ## t/t5312-prune-corruption.sh ##
+@@ t/t5312-prune-corruption.sh: what currently happens. If that changes, these tests should be revisited.
+ 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 'disable reflogs' '
+
## t/t6011-rev-list-with-bad-commit.sh ##
@@
8: 02248aca3eb = 8: cd3eb9e68ff worktree: fix a trivial leak in prune_worktrees()
9: b39d6d29dd5 = 9: e80a719913b http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main()
10: 928dea2d4ee = 10: 9d9df0caf17 http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}()
11: 5770b9eb764 = 11: 65e25377791 commit-graph: fix a parse_options_concat() leak
12: 3ff86cb808c = 12: 3b1d47b9d62 show-branch: free() allocated "head" before return
13: 1f3e3524580 = 13: a85e5f3b14e builtin/merge.c: use fixed strings, not "strbuf", fix leak
14: 15e4b8db805 = 14: 7dbc422d5b4 builtin/merge.c: free "&buf" on "Your local changes..." error
15: d36ad1f818a < -: ----------- object-file.c: release the "tag" in check_tag()
16: 10959760dfc ! 15: aa51668b70d grep.c: refactor free_grep_patterns()
@@ Commit message
grep.c: refactor free_grep_patterns()
Refactor the free_grep_patterns() function to split out the freeing of
- the "struct grep_pat" it contains, right now we're only freeing the
+ the "struct grep_pat" it contains. Right now we're only freeing the
"pattern_list", but we should be freeing another member of the same
type, which we'll do in the subsequent commit.
@@ Commit message
if (!x)
return;
- free(y);
+ free_pattern_expr(y);
- But after the cleanup in db84376f981 (which was a narrow segfault fix,
- and thus avoided refactoring this) we ended up with:
+ While at it, instead of:
if (!x)
return;
- free(x);
+ free_pattern_expr(x);
Let's instead do:
if (x)
- free(x);
+ free_pattern_expr(x);
- This doesn't matter for the subsequent change, but as we're
- refactoring this function let's make it easier to reason about, and to
- extend in the future, i.e. if we start to free free() members that
- come after "pattern_expression" in the "struct grep_opt".
+ This will make it easier to free additional members from
+ free_grep_patterns() in the future.
+ Helped-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## grep.c ##
17: 6a8f4a567aa ! 16: 0c51ea7fd2d grep API: plug memory leaks by freeing "header_list"
@@ Metadata
## Commit message ##
grep API: plug memory leaks by freeing "header_list"
- When the "header_list" struct member was added in [1] it wasn't made
- to free the list using loop added for the adjacent "pattern_list"
- member, see [2] for when we started freeing it.
-
- This makes e.g. this command leak-free when run on git.git:
+ When the "header_list" struct member was added in [1], freeing this
+ field was neglected. Fix that now, so that commands like
./git -P log -1 --color=always --author=A origin/master
+ will run leak-free.
+
1. 80235ba79ef ("log --author=me --grep=it" should find intersection,
not union, 2010-01-17)
- 2. b48fb5b6a95 (grep: free expressions and patterns when done.,
- 2006-09-27)
+ Helped-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## grep.c ##
18: 3c3d48df04b ! 17: 4b2db91f5cb receive-pack: free() the "ref_name" in "struct command"
@@ Commit message
receive-pack: free() the "ref_name" in "struct command"
Fix a memory leak that's been with us since this code was introduced
- in 575f497456e (Add first cut at "git-receive-pack", 2005-06-29), see
+ in 575f497456e (Add first cut at "git-receive-pack", 2005-06-29). See
eb1af2df0b1 (git-receive-pack: start parsing ref update commands,
2005-06-29) for the later change that refactored the code to add the
"ref_name" member.
-: ----------- > 18: aa33f7e05c8 push: refactor refspec_append_mapped() for subsequent leak-fix
19: f29500a4abc ! 19: 67076dfba6d push: free_refs() the "local_refs" in set_refspecs()
@@ Commit message
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).
+ The "remote = remote_get(...)" added in the same commit would seem to
+ leak based only on the context here, but that function is a wrapper
+ for sticking the remotes we fetch into "the_repository->remote_state".
+
+ See fd3cb0501e1 (remote: move static variables into per-repository
+ struct, 2021-11-17) for the addition of code in repository.c that
+ free's the "remote" allocated here.
+
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## builtin/push.c ##
--
2.39.1.1392.g63e6d408230
next prev parent reply other threads:[~2023-02-02 9:53 UTC|newest]
Thread overview: 193+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-28 18:00 [PATCH 00/20] leak fixes: various simple leak fixes Ævar Arnfjörð Bjarmason
2022-12-28 18:00 ` [PATCH 01/20] t6021: mark as passing with SANITIZE=leak Ævar Arnfjörð Bjarmason
2022-12-28 18:00 ` [PATCH 02/20] tests: mark tests " Ævar Arnfjörð Bjarmason
2022-12-28 18:00 ` [PATCH 03/20] bundle.c: don't leak the "args" in the "struct child_process" Ævar Arnfjörð Bjarmason
2022-12-28 18:00 ` [PATCH 04/20] commit-graph: use free() instead of UNLEAK() Ævar Arnfjörð Bjarmason
2022-12-28 18:10 ` René Scharfe
2022-12-28 18:00 ` [PATCH 05/20] clone: " Ævar Arnfjörð Bjarmason
2022-12-28 18:20 ` René Scharfe
2022-12-29 9:02 ` Junio C Hamano
2022-12-29 10:20 ` Ævar Arnfjörð Bjarmason
2022-12-28 18:00 ` [PATCH 06/20] archive.c: call clear_pathspec() in write_archive() Ævar Arnfjörð Bjarmason
2022-12-28 18:00 ` [PATCH 07/20] stash: fix a "struct pathspec" leak Ævar Arnfjörð Bjarmason
2022-12-28 19:45 ` René Scharfe
2022-12-29 7:02 ` Junio C Hamano
2022-12-28 18:00 ` [PATCH 08/20] reset: fix cmd_reset() leaks with a clear_pathspec() call Ævar Arnfjörð Bjarmason
2022-12-29 9:12 ` Junio C Hamano
2022-12-28 18:00 ` [PATCH 09/20] name-rev: don't xstrdup() an already dup'd string Ævar Arnfjörð Bjarmason
2022-12-28 20:31 ` René Scharfe
2022-12-29 7:12 ` Junio C Hamano
2022-12-28 18:00 ` [PATCH 10/20] repack: fix leaks on error with "goto cleanup" Ævar Arnfjörð Bjarmason
2022-12-28 18:00 ` [PATCH 11/20] worktree: fix a trivial leak in prune_worktrees() Ævar Arnfjörð Bjarmason
2022-12-28 20:53 ` René Scharfe
2022-12-28 18:00 ` [PATCH 12/20] http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}() Ævar Arnfjörð Bjarmason
2022-12-28 21:37 ` René Scharfe
2022-12-29 7:32 ` Junio C Hamano
2022-12-29 15:49 ` René Scharfe
2022-12-28 18:00 ` [PATCH 13/20] commit-graph: fix a parse_options_concat() leak Ævar Arnfjörð Bjarmason
2022-12-28 18:00 ` [PATCH 14/20] show-branch: free() allocated "head" before return Ævar Arnfjörð Bjarmason
2022-12-28 18:00 ` [PATCH 15/20] builtin/merge.c: always free "struct strbuf msg" Ævar Arnfjörð Bjarmason
2022-12-28 22:06 ` René Scharfe
2022-12-28 18:00 ` [PATCH 16/20] builtin/merge.c: free "&buf" on "Your local changes..." error Ævar Arnfjörð Bjarmason
2022-12-28 22:13 ` René Scharfe
2022-12-28 18:00 ` [PATCH 17/20] connected.c: free(new_pack) in check_connected() Ævar Arnfjörð Bjarmason
2022-12-28 18:00 ` [PATCH 18/20] object-file.c: free the "t.tag" in check_tag() Ævar Arnfjörð Bjarmason
2022-12-28 22:25 ` René Scharfe
2022-12-28 18:00 ` [PATCH 19/20] grep.c: make it easier to extend free_grep_patterns() Ævar Arnfjörð Bjarmason
2022-12-28 18:00 ` [PATCH 20/20] grep API: plug memory leaks by freeing "header_list" Ævar Arnfjörð Bjarmason
2022-12-28 19:36 ` Eric Sunshine
2022-12-28 22:50 ` René Scharfe
2022-12-30 2:18 ` [PATCH v2 00/20] leak fixes: various simple leak fixes Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 01/20] tests: mark tests as passing with SANITIZE=leak Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 02/20] bundle.c: don't leak the "args" in the "struct child_process" Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 03/20] commit-graph: use free() instead of UNLEAK() Ævar Arnfjörð Bjarmason
2022-12-30 16:26 ` René Scharfe
2022-12-30 2:18 ` [PATCH v2 04/20] clone: " Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 05/20] various: add missing clear_pathspec(), fix leaks Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 06/20] name-rev: don't xstrdup() an already dup'd string Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 07/20] repack: fix leaks on error with "goto cleanup" Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 08/20] worktree: fix a trivial leak in prune_worktrees() Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 09/20] http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main() Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 10/20] http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}() Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 11/20] commit-graph: fix a parse_options_concat() leak Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 12/20] show-branch: free() allocated "head" before return Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 13/20] builtin/merge.c: always free "struct strbuf msg" Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 14/20] builtin/merge.c: free "&buf" on "Your local changes..." error Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 15/20] connected.c: free(new_pack) in check_connected() Ævar Arnfjörð Bjarmason
2022-12-30 16:17 ` René Scharfe
2023-01-10 5:39 ` Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 16/20] object-file.c: release the "tag" in check_tag() Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 17/20] grep.c: refactor free_grep_patterns() Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 18/20] grep API: plug memory leaks by freeing "header_list" Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 19/20] receive-pack: free() the "ref_name" in "struct command" Ævar Arnfjörð Bjarmason
2022-12-30 2:18 ` [PATCH v2 20/20] push: free_refs() the "local_refs" in set_refspecs() Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 00/19] leak fixes: various simple leak fixes Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 01/19] tests: mark tests as passing with SANITIZE=leak Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 02/19] bundle.c: don't leak the "args" in the "struct child_process" Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 03/19] commit-graph: use free_commit_graph() instead of UNLEAK() Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 04/19] clone: use free() " Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 05/19] various: add missing clear_pathspec(), fix leaks Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 06/19] name-rev: don't xstrdup() an already dup'd string Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 07/19] repack: fix leaks on error with "goto cleanup" Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 08/19] worktree: fix a trivial leak in prune_worktrees() Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 09/19] http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main() Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 10/19] http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}() Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 11/19] commit-graph: fix a parse_options_concat() leak Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 12/19] show-branch: free() allocated "head" before return Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 13/19] builtin/merge.c: always free "struct strbuf msg" Ævar Arnfjörð Bjarmason
2023-01-10 18:52 ` René Scharfe
2023-01-13 19:57 ` Junio C Hamano
2023-01-10 5:43 ` [PATCH v3 14/19] builtin/merge.c: free "&buf" on "Your local changes..." error Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 15/19] object-file.c: release the "tag" in check_tag() Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 16/19] grep.c: refactor free_grep_patterns() Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 17/19] grep API: plug memory leaks by freeing "header_list" Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 18/19] receive-pack: free() the "ref_name" in "struct command" Ævar Arnfjörð Bjarmason
2023-01-10 5:43 ` [PATCH v3 19/19] push: free_refs() the "local_refs" in set_refspecs() Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 00/19] leak fixes: various simple leak fixes Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 01/19] tests: mark tests as passing with SANITIZE=leak Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 02/19] bundle.c: don't leak the "args" in the "struct child_process" Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 03/19] commit-graph: use free_commit_graph() instead of UNLEAK() Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 04/19] clone: use free() " Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 05/19] various: add missing clear_pathspec(), fix leaks Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 06/19] name-rev: don't xstrdup() an already dup'd string Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 07/19] repack: fix leaks on error with "goto cleanup" Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 08/19] worktree: fix a trivial leak in prune_worktrees() Ævar Arnfjörð Bjarmason
2023-01-18 6:28 ` Junio C Hamano
2023-01-18 7:00 ` [PATCH v4 20/19] branch: the ref_filter is not cleaned Junio C Hamano
2023-01-18 10:57 ` [PATCH v4 08/19] worktree: fix a trivial leak in prune_worktrees() Ævar Arnfjörð Bjarmason
2023-01-18 16:16 ` Junio C Hamano
2023-01-18 23:03 ` Ævar Arnfjörð Bjarmason
2023-01-18 23:20 ` Junio C Hamano
2023-01-17 17:11 ` [PATCH v4 09/19] http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main() Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 10/19] http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}() Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 11/19] commit-graph: fix a parse_options_concat() leak Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 12/19] show-branch: free() allocated "head" before return Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 13/19] builtin/merge.c: use fixed strings, not "strbuf", fix leak Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 14/19] builtin/merge.c: free "&buf" on "Your local changes..." error Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 15/19] object-file.c: release the "tag" in check_tag() Ævar Arnfjörð Bjarmason
2023-01-17 19:58 ` René Scharfe
2023-01-18 17:19 ` Jeff King
2023-01-18 18:05 ` René Scharfe
2023-01-18 18:39 ` Jeff King
2023-01-18 18:54 ` René Scharfe
2023-01-18 19:17 ` Jeff King
2023-01-17 17:11 ` [PATCH v4 16/19] grep.c: refactor free_grep_patterns() Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 17/19] grep API: plug memory leaks by freeing "header_list" Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 18/19] receive-pack: free() the "ref_name" in "struct command" Ævar Arnfjörð Bjarmason
2023-01-17 17:11 ` [PATCH v4 19/19] push: free_refs() the "local_refs" in set_refspecs() Ævar Arnfjörð Bjarmason
2023-01-17 19:58 ` René Scharfe
2023-01-18 12:08 ` [PATCH v5 00/19] leak fixes: various simple leak fixes Ævar Arnfjörð Bjarmason
2023-01-18 12:08 ` [PATCH v5 01/19] tests: mark tests as passing with SANITIZE=leak Ævar Arnfjörð Bjarmason
2023-01-18 12:08 ` [PATCH v5 02/19] bundle.c: don't leak the "args" in the "struct child_process" Ævar Arnfjörð Bjarmason
2023-01-26 1:38 ` Elijah Newren
2023-01-18 12:08 ` [PATCH v5 03/19] commit-graph: use free_commit_graph() instead of UNLEAK() Ævar Arnfjörð Bjarmason
2023-01-18 12:08 ` [PATCH v5 04/19] clone: use free() " Ævar Arnfjörð Bjarmason
2023-01-18 12:08 ` [PATCH v5 05/19] various: add missing clear_pathspec(), fix leaks Ævar Arnfjörð Bjarmason
2023-01-18 12:08 ` [PATCH v5 06/19] name-rev: don't xstrdup() an already dup'd string Ævar Arnfjörð Bjarmason
2023-01-18 12:08 ` [PATCH v5 07/19] repack: fix leaks on error with "goto cleanup" Ævar Arnfjörð Bjarmason
2023-01-26 1:36 ` Elijah Newren
2023-01-18 12:08 ` [PATCH v5 08/19] worktree: fix a trivial leak in prune_worktrees() Ævar Arnfjörð Bjarmason
2023-01-18 12:08 ` [PATCH v5 09/19] http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main() Ævar Arnfjörð Bjarmason
2023-01-18 12:08 ` [PATCH v5 10/19] http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}() Ævar Arnfjörð Bjarmason
2023-01-18 12:08 ` [PATCH v5 11/19] commit-graph: fix a parse_options_concat() leak Ævar Arnfjörð Bjarmason
2023-01-18 12:08 ` [PATCH v5 12/19] show-branch: free() allocated "head" before return Ævar Arnfjörð Bjarmason
2023-01-18 12:08 ` [PATCH v5 13/19] builtin/merge.c: use fixed strings, not "strbuf", fix leak Ævar Arnfjörð Bjarmason
2023-01-18 12:08 ` [PATCH v5 14/19] builtin/merge.c: free "&buf" on "Your local changes..." error Ævar Arnfjörð Bjarmason
2023-01-26 1:54 ` Elijah Newren
2023-01-18 12:08 ` [PATCH v5 15/19] object-file.c: release the "tag" in check_tag() Ævar Arnfjörð Bjarmason
2023-01-18 12:08 ` [PATCH v5 16/19] grep.c: refactor free_grep_patterns() Ævar Arnfjörð Bjarmason
2023-01-26 2:26 ` Elijah Newren
2023-01-18 12:08 ` [PATCH v5 17/19] grep API: plug memory leaks by freeing "header_list" Ævar Arnfjörð Bjarmason
2023-01-26 2:33 ` Elijah Newren
2023-01-18 12:08 ` [PATCH v5 18/19] receive-pack: free() the "ref_name" in "struct command" Ævar Arnfjörð Bjarmason
2023-01-26 2:37 ` Elijah Newren
2023-01-18 12:08 ` [PATCH v5 19/19] push: free_refs() the "local_refs" in set_refspecs() Ævar Arnfjörð Bjarmason
2023-01-26 2:44 ` Elijah Newren
2023-02-02 9:52 ` Ævar Arnfjörð Bjarmason [this message]
2023-02-02 9:52 ` [PATCH v6 01/19] tests: mark tests as passing with SANITIZE=leak Ævar Arnfjörð Bjarmason
2023-02-02 9:52 ` [PATCH v6 02/19] bundle.c: don't leak the "args" in the "struct child_process" Ævar Arnfjörð Bjarmason
2023-02-02 9:52 ` [PATCH v6 03/19] commit-graph: use free_commit_graph() instead of UNLEAK() Ævar Arnfjörð Bjarmason
2023-02-02 9:52 ` [PATCH v6 04/19] clone: use free() " Ævar Arnfjörð Bjarmason
2023-02-02 9:52 ` [PATCH v6 05/19] various: add missing clear_pathspec(), fix leaks Ævar Arnfjörð Bjarmason
2023-02-02 9:52 ` [PATCH v6 06/19] name-rev: don't xstrdup() an already dup'd string Ævar Arnfjörð Bjarmason
2023-02-02 9:52 ` [PATCH v6 07/19] repack: fix leaks on error with "goto cleanup" Ævar Arnfjörð Bjarmason
2023-02-02 9:52 ` [PATCH v6 08/19] worktree: fix a trivial leak in prune_worktrees() Ævar Arnfjörð Bjarmason
2023-02-02 9:52 ` [PATCH v6 09/19] http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main() Ævar Arnfjörð Bjarmason
2023-02-02 9:52 ` [PATCH v6 10/19] http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}() Ævar Arnfjörð Bjarmason
2023-02-02 9:52 ` [PATCH v6 11/19] commit-graph: fix a parse_options_concat() leak Ævar Arnfjörð Bjarmason
2023-02-02 9:52 ` [PATCH v6 12/19] show-branch: free() allocated "head" before return Ævar Arnfjörð Bjarmason
2023-02-02 9:52 ` [PATCH v6 13/19] builtin/merge.c: use fixed strings, not "strbuf", fix leak Ævar Arnfjörð Bjarmason
2023-02-02 9:52 ` [PATCH v6 14/19] builtin/merge.c: free "&buf" on "Your local changes..." error Ævar Arnfjörð Bjarmason
2023-02-02 9:52 ` [PATCH v6 15/19] grep.c: refactor free_grep_patterns() Ævar Arnfjörð Bjarmason
2023-02-02 9:52 ` [PATCH v6 16/19] grep API: plug memory leaks by freeing "header_list" Ævar Arnfjörð Bjarmason
2023-02-02 9:52 ` [PATCH v6 17/19] receive-pack: free() the "ref_name" in "struct command" Ævar Arnfjörð Bjarmason
2023-02-02 21:55 ` Junio C Hamano
2023-02-02 9:52 ` [PATCH v6 18/19] push: refactor refspec_append_mapped() for subsequent leak-fix Ævar Arnfjörð Bjarmason
2023-02-02 22:10 ` Junio C Hamano
2023-02-06 17:16 ` Ævar Arnfjörð Bjarmason
2023-02-06 23:42 ` Junio C Hamano
2023-02-02 9:52 ` [PATCH v6 19/19] push: free_refs() the "local_refs" in set_refspecs() Ævar Arnfjörð Bjarmason
2023-02-02 22:12 ` Junio C Hamano
2023-02-06 17:19 ` Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 00/19] leak fixes: various simple leak fixes Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 01/19] tests: mark tests as passing with SANITIZE=leak Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 02/19] bundle.c: don't leak the "args" in the "struct child_process" Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 03/19] commit-graph: use free_commit_graph() instead of UNLEAK() Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 04/19] clone: use free() " Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 05/19] various: add missing clear_pathspec(), fix leaks Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 06/19] name-rev: don't xstrdup() an already dup'd string Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 07/19] repack: fix leaks on error with "goto cleanup" Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 08/19] worktree: fix a trivial leak in prune_worktrees() Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 09/19] http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main() Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 10/19] http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}() Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 11/19] commit-graph: fix a parse_options_concat() leak Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 12/19] show-branch: free() allocated "head" before return Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 13/19] builtin/merge.c: use fixed strings, not "strbuf", fix leak Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 14/19] builtin/merge.c: free "&buf" on "Your local changes..." error Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 15/19] grep.c: refactor free_grep_patterns() Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 16/19] grep API: plug memory leaks by freeing "header_list" Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 17/19] receive-pack: release the linked "struct command *" list Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 18/19] push: refactor refspec_append_mapped() for subsequent leak-fix Ævar Arnfjörð Bjarmason
2023-02-06 23:07 ` [PATCH v7 19/19] push: free_refs() the "local_refs" in set_refspecs() Ævar Arnfjörð Bjarmason
2023-02-07 0:13 ` [PATCH v7 00/19] leak fixes: various simple leak fixes Junio C Hamano
2023-02-07 3:40 ` Elijah Newren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover-v6-00.19-00000000000-20230202T094704Z-avarab@gmail.com \
--to=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=l.s.r@web.de \
--cc=newren@gmail.com \
--cc=sunshine@sunshineco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).