All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
	"Glen Choo" <chooglen@google.com>,
	"Atharva Raykar" <raykar.ath@gmail.com>,
	"Prathamesh Chavan" <pc44800@gmail.com>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH v7 00/17] submodule--helper: fix memory leaks
Date: Thu,  1 Sep 2022 01:14:07 +0200	[thread overview]
Message-ID: <cover-v7-00.17-00000000000-20220831T231003Z-avarab@gmail.com> (raw)
In-Reply-To: <cover-v6-00.17-00000000000-20220821T130415Z-avarab@gmail.com>

This series fixes all of the memory leaks in
builtin/submodule--helper.c that our test suite spots, except for
those where the leak is downstream of cmd_submodule__helper() and
caused by code that's not in builtin/submodule--helper.c (e.g. leaks
in the object or config APIs, and in submodule.c).

This re-roll is on top of the just-now re-rolled v4 of the base
topic[1].

Changes in v7:

 * Rebase on top of the base topic.
 * Clarify some questions on v6 in updated commit messages.
 * Go with Glen's suggested "displaypath" fix. I also tried another
   way which the commit discusses. The end result was better, but it
   requires further submodule--helper cleanups, and this is already
   quite an Odyssey. So FREE_AND_NULL() will do.

1. https://lore.kernel.org/git/cover-v4-00.33-00000000000-20220831T230519Z-avarab@gmail.com

This series & passing CI can be seen at:
https://github.com/avar/git/tree/avar/submodule--helper-memory-leaks-7

Ævar Arnfjörð Bjarmason (17):
  submodule--helper: fix a leak in "clone_submodule"
  submodule--helper: fix trivial get_default_remote_submodule() leak
  submodule--helper: fix most "struct pathspec" memory leaks
  submodule--helper: "struct pathspec" memory leak in module_update()
  submodule--helper: don't leak {run,capture}_command() cp.dir argument
  submodule--helper: add and use *_release() functions
  submodule--helper: fix "errmsg_str" memory leak
  submodule--helper: fix "sm_path" and other "module_cb_list" leaks
  submodule--helper: fix a leak with repo_clear()
  submodule--helper: fix a memory leak in get_default_remote_submodule()
  submodule--helper: fix "reference" leak
  submodule--helper: fix obscure leak in module_add()
  submodule--helper: fix a leak in module_add()
  submodule--helper: fix a memory leak in print_status()
  submodule--helper: free some "displaypath" in "struct update_data"
  submodule--helper: free rest of "displaypath" in "struct update_data"
  submodule--helper: fix a configure_added_submodule() leak

 builtin/submodule--helper.c        | 227 +++++++++++++++++++++--------
 t/t1500-rev-parse.sh               |   1 +
 t/t2403-worktree-move.sh           |   1 +
 t/t6008-rev-list-submodule.sh      |   1 +
 t/t6134-pathspec-in-submodule.sh   |   1 +
 t/t7401-submodule-summary.sh       |   1 +
 t/t7412-submodule-absorbgitdirs.sh |   1 +
 t/t7413-submodule-is-active.sh     |   1 +
 t/t7414-submodule-mistakes.sh      |   2 +
 t/t7419-submodule-set-branch.sh    |   1 +
 t/t7506-status-submodule.sh        |   1 +
 t/t7507-commit-verbose.sh          |   2 +
 12 files changed, 176 insertions(+), 64 deletions(-)

Range-diff against v6:
 1:  0f60ea6f7c6 =  1:  40d4aef60fa submodule--helper: fix a leak in "clone_submodule"
 2:  c14e00f39cb =  2:  104f0777d50 submodule--helper: fix trivial get_default_remote_submodule() leak
 3:  a2ecdb301d3 !  3:  3e1948ddc02 submodule--helper: fix most "struct pathspec" memory leaks
    @@ Commit message
         safe to call clear_pathspec(), we don't want the data to be
         uninitialized.
     
    +    E.g. for module_foreach() we can see from looking at
    +    module_list_compute() that if it returns non-zero that the "pathspec"
    +    will always have been initialized. But relying on that both assumes
    +    knowledge about parse_pathspec(), and would set up a fragile pattern
    +    going forward.
    +
         Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
     
      ## builtin/submodule--helper.c ##
 4:  8fc3dad316e =  4:  505d7d5077e submodule--helper: "struct pathspec" memory leak in module_update()
 5:  a3886d36366 !  5:  41672ffa55c submodule--helper: don't leak {run,capture}_command() cp.dir argument
    @@ Commit message
         Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
     
      ## builtin/submodule--helper.c ##
    -@@ builtin/submodule--helper.c: static int is_tip_reachable(const char *path, struct object_id *oid)
    +@@ builtin/submodule--helper.c: static int is_tip_reachable(const char *path, const struct object_id *oid)
      	char *hex = oid_to_hex(oid);
      
      	cp.git_cmd = 1;
    @@ builtin/submodule--helper.c: static int is_tip_reachable(const char *path, struc
      	cp.no_stderr = 1;
      	strvec_pushl(&cp.args, "rev-list", "-n", "1", hex, "--not", "--all", NULL);
      
    -@@ builtin/submodule--helper.c: static int fetch_in_submodule(const char *module_path, int depth, int quiet, str
    +@@ builtin/submodule--helper.c: static int fetch_in_submodule(const char *module_path, int depth, int quiet,
      
      	prepare_submodule_repo_env(&cp.env);
      	cp.git_cmd = 1;
    @@ builtin/submodule--helper.c: static int fetch_in_submodule(const char *module_pa
      
      	strvec_push(&cp.args, "fetch");
      	if (quiet)
    -@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *ud, int subforce)
    +@@ builtin/submodule--helper.c: static int run_update_command(const struct update_data *ud, int subforce)
      	}
      	strvec_push(&cp.args, oid);
      
 6:  173dbb7d8fc =  6:  07a4cda579f submodule--helper: add and use *_release() functions
 7:  cd394814370 =  7:  600526e1301 submodule--helper: fix "errmsg_str" memory leak
 8:  2110b991913 =  8:  2c5db495189 submodule--helper: fix "sm_path" and other "module_cb_list" leaks
 9:  a0d1a03166f =  9:  71ebaac73c1 submodule--helper: fix a leak with repo_clear()
10:  84f162f320b = 10:  8a016f3d58c submodule--helper: fix a memory leak in get_default_remote_submodule()
11:  dc5e8504354 = 11:  6a4c22d07b9 submodule--helper: fix "reference" leak
12:  50d58bfb19b = 12:  b8654647601 submodule--helper: fix obscure leak in module_add()
13:  56590508180 = 13:  c922e04f3d1 submodule--helper: fix a leak in module_add()
14:  38ceb0a36ab = 14:  33babb1a165 submodule--helper: fix a memory leak in print_status()
15:  f3cf49dd029 = 15:  bfafd31746e submodule--helper: free some "displaypath" in "struct update_data"
16:  a99a7736fab ! 16:  63ff554e306 submodule--helper: free rest of "displaypath" in "struct update_data"
    @@ Commit message
         update_submodule() function itself can use it, and for the
         run_update_procedure() called within this function.
     
    -    To make managing that clobbering easier let's wrap the
    -    update_submodule() in a new update_submodule_outer() function, which
    -    will do the clobbering and free(to_free) dance for us.
    +    Fix a leak in code added in 51f8f94e5b (submodule--helper: run update
    +    procedures from C, 2021-08-24). We'd always clobber the old
    +    "displaypath" member of the previously passed-in "struct update_data".
     
    +    A better fix for this would be to remove the "displaypath" member from
    +    the "struct update_data" entirely. Along with "oid", "suboid",
    +    "just_cloned" and "sm_path" it's managing members that mainly need to
    +    be passed between 1-3 stack frames of functions adjacent to this
    +    code. But doing so would be a much larger change (I have it locally,
    +    and fully untangling that in an incremental way is a 10 patch
    +    journey).
    +
    +    So let's go for this much more isolated fix suggested by Glen. We
    +    FREE_AND_NULL() the "update_data->displaypath", the "AND_NULL()" part
    +    of that is needed due to the later "free(ud->displaypath)" in
    +    "update_data_release()" introduced in the preceding commit
    +
    +    Moving ensure_core_worktree() out of update_submodule() may not be
    +    strictly required, but in doing so we are left with the exact same
    +    ordering as before, making this a smaller functional change.
    +
    +    Helped-by: Glen Choo <chooglen@google.com>
         Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
     
      ## builtin/submodule--helper.c ##
    @@ builtin/submodule--helper.c: static int update_submodule(struct update_data *upd
      	ret = determine_submodule_update_strategy(the_repository,
      						  update_data->just_cloned,
      						  update_data->sm_path,
    -@@ builtin/submodule--helper.c: static int update_submodule(struct update_data *update_data)
    - 	return 0;
    - }
    - 
    -+static int update_submodule_outer(struct update_data *update_data)
    -+{
    -+	char *to_free, *restore = update_data->displaypath;
    -+	int ret;
    -+
    -+	ensure_core_worktree(update_data->sm_path);
    -+
    -+	update_data->displaypath = to_free = get_submodule_displaypath(
    -+		update_data->sm_path, update_data->prefix);
    -+
    -+	ret = update_submodule(update_data);
    -+
    -+	free(to_free);
    -+	update_data->displaypath = restore;
    -+
    -+	return ret;
    -+}
    -+
    - static int update_submodules(struct update_data *update_data)
    - {
    - 	int i, ret = 0;
     @@ builtin/submodule--helper.c: static int update_submodules(struct update_data *update_data)
      		update_data->just_cloned = ucd.just_cloned;
      		update_data->sm_path = ucd.sub->path;
      
    --		code = update_submodule(update_data);
    -+		code = update_submodule_outer(update_data);
    ++		code = ensure_core_worktree(update_data->sm_path);
    ++		if (code)
    ++			goto fail;
    ++
    ++		update_data->displaypath = get_submodule_displaypath(
    ++			update_data->sm_path, update_data->prefix);
    + 		code = update_submodule(update_data);
    ++		FREE_AND_NULL(update_data->displaypath);
    ++fail:
      		if (!code)
      			continue;
      		ret = code;
17:  ec0b02d8ee2 = 17:  3056bfcf607 submodule--helper: fix a configure_added_submodule() leak
-- 
2.37.3.1420.g76f8a3d556c


  parent reply	other threads:[~2022-08-31 23:15 UTC|newest]

Thread overview: 186+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-13 13:16 [PATCH 00/11] submodule--helper: fix memory leaks Ævar Arnfjörð Bjarmason
2022-07-13 13:16 ` [PATCH 01/11] submodule.c: free() memory from xgetcwd() Ævar Arnfjörð Bjarmason
2022-07-13 13:16 ` [PATCH 02/11] submodule--helper: replace memset() with { 0 }-initialization Ævar Arnfjörð Bjarmason
2022-07-13 21:00   ` Glen Choo
2022-07-13 21:19     ` Junio C Hamano
2022-07-13 22:41       ` Glen Choo
2022-07-14 10:25         ` Ævar Arnfjörð Bjarmason
2022-07-14 17:19           ` Junio C Hamano
2022-07-15  0:17           ` Glen Choo
2022-07-13 13:16 ` [PATCH 03/11] submodule--helper: fix "module_clone_data" memory leaks Ævar Arnfjörð Bjarmason
2022-07-13 17:37   ` Glen Choo
2022-07-13 18:05     ` Glen Choo
2022-07-13 20:30       ` Ævar Arnfjörð Bjarmason
2022-07-13 23:04         ` Glen Choo
2022-07-14  0:06           ` Ævar Arnfjörð Bjarmason
2022-07-13 13:16 ` [PATCH 04/11] submodule--helper: fix "struct pathspec" " Ævar Arnfjörð Bjarmason
2022-07-13 13:16 ` [PATCH 05/11] submodule--helper: free() leaking {run,capture}_command() argument Ævar Arnfjörð Bjarmason
2022-07-14  3:36   ` Glen Choo
2022-07-14 14:43     ` Ævar Arnfjörð Bjarmason
2022-07-13 13:16 ` [PATCH 06/11] submodule--helper: add and use *_release() functions Ævar Arnfjörð Bjarmason
2022-07-14 18:11   ` Glen Choo
2022-07-13 13:16 ` [PATCH 07/11] submodule--helper: fix "errmsg_str" memory leak Ævar Arnfjörð Bjarmason
2022-07-14 18:20   ` Glen Choo
2022-07-13 13:16 ` [PATCH 08/11] submodule--helper: fix "sm_path" and other "module_cb_list" leaks Ævar Arnfjörð Bjarmason
2022-07-13 13:16 ` [PATCH 09/11] submodule--helper: free "char *" in "struct update_data" Ævar Arnfjörð Bjarmason
2022-07-14 18:33   ` Glen Choo
2022-07-18 16:10     ` Ævar Arnfjörð Bjarmason
2022-07-13 13:16 ` [PATCH 10/11] submodule--helper: fix a leak with repo_clear() Ævar Arnfjörð Bjarmason
2022-07-13 13:16 ` [PATCH 11/11] submodule--helper: fix "reference" leak is "module_clone_data" Ævar Arnfjörð Bjarmason
2022-07-14 18:42   ` Glen Choo
2022-07-19 20:46 ` [PATCH v2 00/24] submodule--helper: fix memory leaks Ævar Arnfjörð Bjarmason
2022-07-19 20:46   ` [PATCH v2 01/24] submodule--helper: replace memset() with { 0 }-initialization Ævar Arnfjörð Bjarmason
2022-07-19 21:21     ` Junio C Hamano
2022-07-19 20:46   ` [PATCH v2 02/24] submodule--helper: fix a leak in "clone_submodule" Ævar Arnfjörð Bjarmason
2022-07-19 21:31     ` Junio C Hamano
2022-07-19 20:46   ` [PATCH v2 03/24] submodule--helper: fix trivial get_default_remote_submodule() leak Ævar Arnfjörð Bjarmason
2022-07-19 20:46   ` [PATCH v2 04/24] submodule--helper: fix most "struct pathspec" memory leaks Ævar Arnfjörð Bjarmason
2022-07-20 16:33     ` Junio C Hamano
2022-07-21 17:49     ` Glen Choo
2022-07-19 20:46   ` [PATCH v2 05/24] submodule--helper: "struct pathspec" memory leak in module_update() Ævar Arnfjörð Bjarmason
2022-07-20 16:43     ` Junio C Hamano
2022-07-21 19:54     ` Glen Choo
2022-07-19 20:46   ` [PATCH v2 06/24] submodule--helper: don't leak {run,capture}_command() cp.dir argument Ævar Arnfjörð Bjarmason
2022-07-19 20:46   ` [PATCH v2 07/24] submodule--helper: add "const" to copy of "update_data" Ævar Arnfjörð Bjarmason
2022-07-19 20:46   ` [PATCH v2 08/24] submodule--helper: add and use *_release() functions Ævar Arnfjörð Bjarmason
2022-07-20 17:06     ` Junio C Hamano
2022-07-21 17:44       ` Ævar Arnfjörð Bjarmason
2022-07-19 20:47   ` [PATCH v2 09/24] submodule--helper: refactor "errmsg_str" to be a "struct strbuf" Ævar Arnfjörð Bjarmason
2022-07-19 20:47   ` [PATCH v2 10/24] submodule--helper: fix "errmsg_str" memory leak Ævar Arnfjörð Bjarmason
2022-07-19 20:47   ` [PATCH v2 11/24] submodule--helper: fix "sm_path" and other "module_cb_list" leaks Ævar Arnfjörð Bjarmason
2022-07-20 22:35     ` Junio C Hamano
2022-07-19 20:47   ` [PATCH v2 12/24] submodule--helper: fix a leak with repo_clear() Ævar Arnfjörð Bjarmason
2022-07-19 20:47   ` [PATCH v2 13/24] submodule--helper: fix a memory leak in get_default_remote_submodule() Ævar Arnfjörð Bjarmason
2022-07-19 20:47   ` [PATCH v2 14/24] submodule--helper: fix "reference" leak is "module_clone_data" Ævar Arnfjörð Bjarmason
2022-07-21  0:50     ` Junio C Hamano
2022-07-19 20:47   ` [PATCH v2 15/24] submodule--helper: fix obscure leak in module_add() Ævar Arnfjörð Bjarmason
2022-07-19 20:47   ` [PATCH v2 16/24] submodule--helper: fix a " Ævar Arnfjörð Bjarmason
2022-07-19 20:47   ` [PATCH v2 17/24] submodule--helper: fix a memory leak in print_status() Ævar Arnfjörð Bjarmason
2022-07-19 20:47   ` [PATCH v2 18/24] submodule--helper: free some "displaypath" in "struct update_data" Ævar Arnfjörð Bjarmason
2022-07-19 20:47   ` [PATCH v2 19/24] submodule--helper: rename "int res" to "int ret" Ævar Arnfjörð Bjarmason
2022-07-19 20:47   ` [PATCH v2 20/24] submodule--helper: add skeleton "goto cleanup" to update_submodule() Ævar Arnfjörð Bjarmason
2022-07-19 20:47   ` [PATCH v2 21/24] submodule--helper: don't exit() on failure, return Ævar Arnfjörð Bjarmason
2022-07-19 20:47   ` [PATCH v2 22/24] submodule--helper: free rest of "displaypath" in "struct update_data" Ævar Arnfjörð Bjarmason
2022-07-19 20:47   ` [PATCH v2 23/24] submodule--helper: fix bad config API usage Ævar Arnfjörð Bjarmason
2022-07-19 20:47   ` [PATCH v2 24/24] submodule--helper: fix a configure_added_submodule() leak Ævar Arnfjörð Bjarmason
2022-07-21 19:12   ` [PATCH v3 00/26] submodule--helper: fix memory leaks Ævar Arnfjörð Bjarmason
2022-07-21 19:12     ` [PATCH v3 01/26] submodule--helper: replace memset() with { 0 }-initialization Ævar Arnfjörð Bjarmason
2022-07-21 19:12     ` [PATCH v3 02/26] submodule--helper: stop conflating "sb" in clone_submodule() Ævar Arnfjörð Bjarmason
2022-07-21 21:16       ` Junio C Hamano
2022-07-22 13:50         ` Ævar Arnfjörð Bjarmason
2022-07-22 16:48           ` Glen Choo
2022-07-22 18:47           ` Junio C Hamano
2022-07-28 16:30             ` Ævar Arnfjörð Bjarmason
2022-07-21 19:12     ` [PATCH v3 03/26] submodule--helper: pass a "const struct module_clone_data" to clone_submodule() Ævar Arnfjörð Bjarmason
2022-07-21 21:26       ` Junio C Hamano
2022-07-25 17:07       ` Glen Choo
2022-07-21 19:13     ` [PATCH v3 04/26] submodule--helper: fix a leak in "clone_submodule" Ævar Arnfjörð Bjarmason
2022-07-21 21:30       ` Junio C Hamano
2022-07-22 11:30         ` Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 05/26] submodule--helper: fix trivial get_default_remote_submodule() leak Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 06/26] submodule--helper: fix most "struct pathspec" memory leaks Ævar Arnfjörð Bjarmason
2022-07-21 21:37       ` Junio C Hamano
2022-07-21 19:13     ` [PATCH v3 07/26] submodule--helper: "struct pathspec" memory leak in module_update() Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 08/26] submodule--helper: don't leak {run,capture}_command() cp.dir argument Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 09/26] submodule--helper: add "const" to copy of "update_data" Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 10/26] submodule--helper: add and use *_release() functions Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 11/26] submodule--helper: refactor "errmsg_str" to be a "struct strbuf" Ævar Arnfjörð Bjarmason
2022-07-25 23:15       ` Glen Choo
2022-07-21 19:13     ` [PATCH v3 12/26] submodule--helper: fix "errmsg_str" memory leak Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 13/26] submodule--helper: fix "sm_path" and other "module_cb_list" leaks Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 14/26] submodule--helper: fix a leak with repo_clear() Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 15/26] submodule--helper: fix a memory leak in get_default_remote_submodule() Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 16/26] submodule--helper: fix "reference" leak is "module_clone_data" Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 17/26] submodule--helper: fix obscure leak in module_add() Ævar Arnfjörð Bjarmason
2022-07-21 21:45       ` Junio C Hamano
2022-07-21 19:13     ` [PATCH v3 18/26] submodule--helper: fix a " Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 19/26] submodule--helper: fix a memory leak in print_status() Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 20/26] submodule--helper: free some "displaypath" in "struct update_data" Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 21/26] submodule--helper: rename "int res" to "int ret" Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 22/26] submodule--helper: add skeleton "goto cleanup" to update_submodule() Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 23/26] submodule--helper: don't exit() on failure, return Ævar Arnfjörð Bjarmason
2022-07-25 23:57       ` Glen Choo
2022-07-21 19:13     ` [PATCH v3 24/26] submodule--helper: free rest of "displaypath" in "struct update_data" Ævar Arnfjörð Bjarmason
2022-07-26  1:06       ` Glen Choo
2022-07-21 19:13     ` [PATCH v3 25/26] submodule--helper: fix bad config API usage Ævar Arnfjörð Bjarmason
2022-07-21 19:13     ` [PATCH v3 26/26] submodule--helper: fix a configure_added_submodule() leak Ævar Arnfjörð Bjarmason
2022-07-21 21:51       ` Junio C Hamano
2022-07-28 16:29     ` [PATCH v4 00/17] submodule--helper: (only) fix memory leaks Ævar Arnfjörð Bjarmason
2022-07-28 16:29       ` [PATCH v4 01/17] submodule--helper: fix a leak in "clone_submodule" Ævar Arnfjörð Bjarmason
2022-07-28 16:29       ` [PATCH v4 02/17] submodule--helper: fix trivial get_default_remote_submodule() leak Ævar Arnfjörð Bjarmason
2022-07-28 16:29       ` [PATCH v4 03/17] submodule--helper: fix most "struct pathspec" memory leaks Ævar Arnfjörð Bjarmason
2022-07-28 16:29       ` [PATCH v4 04/17] submodule--helper: "struct pathspec" memory leak in module_update() Ævar Arnfjörð Bjarmason
2022-07-28 16:29       ` [PATCH v4 05/17] submodule--helper: don't leak {run,capture}_command() cp.dir argument Ævar Arnfjörð Bjarmason
2022-07-28 16:30       ` [PATCH v4 06/17] submodule--helper: add and use *_release() functions Ævar Arnfjörð Bjarmason
2022-07-28 16:30       ` [PATCH v4 07/17] submodule--helper: fix "errmsg_str" memory leak Ævar Arnfjörð Bjarmason
2022-07-28 16:30       ` [PATCH v4 08/17] submodule--helper: fix "sm_path" and other "module_cb_list" leaks Ævar Arnfjörð Bjarmason
2022-07-28 16:30       ` [PATCH v4 09/17] submodule--helper: fix a leak with repo_clear() Ævar Arnfjörð Bjarmason
2022-07-28 16:30       ` [PATCH v4 10/17] submodule--helper: fix a memory leak in get_default_remote_submodule() Ævar Arnfjörð Bjarmason
2022-07-28 16:30       ` [PATCH v4 11/17] submodule--helper: fix "reference" leak Ævar Arnfjörð Bjarmason
2022-07-28 16:30       ` [PATCH v4 12/17] submodule--helper: fix obscure leak in module_add() Ævar Arnfjörð Bjarmason
2022-07-28 16:30       ` [PATCH v4 13/17] submodule--helper: fix a " Ævar Arnfjörð Bjarmason
2022-07-28 16:30       ` [PATCH v4 14/17] submodule--helper: fix a memory leak in print_status() Ævar Arnfjörð Bjarmason
2022-07-28 16:30       ` [PATCH v4 15/17] submodule--helper: free some "displaypath" in "struct update_data" Ævar Arnfjörð Bjarmason
2022-07-28 16:30       ` [PATCH v4 16/17] submodule--helper: free rest of " Ævar Arnfjörð Bjarmason
2022-07-28 16:30       ` [PATCH v4 17/17] submodule--helper: fix a configure_added_submodule() leak Ævar Arnfjörð Bjarmason
2022-08-02 15:54       ` [PATCH v5 00/17] submodule--helper: fix memory leaks Ævar Arnfjörð Bjarmason
2022-08-02 15:54         ` [PATCH v5 01/17] submodule--helper: fix a leak in "clone_submodule" Ævar Arnfjörð Bjarmason
2022-08-02 15:54         ` [PATCH v5 02/17] submodule--helper: fix trivial get_default_remote_submodule() leak Ævar Arnfjörð Bjarmason
2022-08-02 15:54         ` [PATCH v5 03/17] submodule--helper: fix most "struct pathspec" memory leaks Ævar Arnfjörð Bjarmason
2022-08-03 22:59           ` Glen Choo
2022-08-04  7:04             ` Ævar Arnfjörð Bjarmason
2022-08-02 15:54         ` [PATCH v5 04/17] submodule--helper: "struct pathspec" memory leak in module_update() Ævar Arnfjörð Bjarmason
2022-08-02 15:54         ` [PATCH v5 05/17] submodule--helper: don't leak {run,capture}_command() cp.dir argument Ævar Arnfjörð Bjarmason
2022-08-02 15:54         ` [PATCH v5 06/17] submodule--helper: add and use *_release() functions Ævar Arnfjörð Bjarmason
2022-08-02 15:54         ` [PATCH v5 07/17] submodule--helper: fix "errmsg_str" memory leak Ævar Arnfjörð Bjarmason
2022-08-02 15:54         ` [PATCH v5 08/17] submodule--helper: fix "sm_path" and other "module_cb_list" leaks Ævar Arnfjörð Bjarmason
2022-08-03 23:10           ` Glen Choo
2022-08-02 15:54         ` [PATCH v5 09/17] submodule--helper: fix a leak with repo_clear() Ævar Arnfjörð Bjarmason
2022-08-02 15:54         ` [PATCH v5 10/17] submodule--helper: fix a memory leak in get_default_remote_submodule() Ævar Arnfjörð Bjarmason
2022-08-02 15:54         ` [PATCH v5 11/17] submodule--helper: fix "reference" leak Ævar Arnfjörð Bjarmason
2022-08-02 15:54         ` [PATCH v5 12/17] submodule--helper: fix obscure leak in module_add() Ævar Arnfjörð Bjarmason
2022-08-02 15:54         ` [PATCH v5 13/17] submodule--helper: fix a " Ævar Arnfjörð Bjarmason
2022-08-02 15:54         ` [PATCH v5 14/17] submodule--helper: fix a memory leak in print_status() Ævar Arnfjörð Bjarmason
2022-08-02 15:54         ` [PATCH v5 15/17] submodule--helper: free some "displaypath" in "struct update_data" Ævar Arnfjörð Bjarmason
2022-08-02 15:54         ` [PATCH v5 16/17] submodule--helper: free rest of " Ævar Arnfjörð Bjarmason
2022-08-04 18:04           ` Glen Choo
2022-08-02 15:54         ` [PATCH v5 17/17] submodule--helper: fix a configure_added_submodule() leak Ævar Arnfjörð Bjarmason
2022-08-21 13:59         ` [PATCH v6 00/17] submodule--helper: fix memory leaks Ævar Arnfjörð Bjarmason
2022-08-21 13:59           ` [PATCH v6 01/17] submodule--helper: fix a leak in "clone_submodule" Ævar Arnfjörð Bjarmason
2022-08-21 13:59           ` [PATCH v6 02/17] submodule--helper: fix trivial get_default_remote_submodule() leak Ævar Arnfjörð Bjarmason
2022-08-21 13:59           ` [PATCH v6 03/17] submodule--helper: fix most "struct pathspec" memory leaks Ævar Arnfjörð Bjarmason
2022-08-21 13:59           ` [PATCH v6 04/17] submodule--helper: "struct pathspec" memory leak in module_update() Ævar Arnfjörð Bjarmason
2022-08-21 13:59           ` [PATCH v6 05/17] submodule--helper: don't leak {run,capture}_command() cp.dir argument Ævar Arnfjörð Bjarmason
2022-08-21 13:59           ` [PATCH v6 06/17] submodule--helper: add and use *_release() functions Ævar Arnfjörð Bjarmason
2022-08-21 13:59           ` [PATCH v6 07/17] submodule--helper: fix "errmsg_str" memory leak Ævar Arnfjörð Bjarmason
2022-08-21 13:59           ` [PATCH v6 08/17] submodule--helper: fix "sm_path" and other "module_cb_list" leaks Ævar Arnfjörð Bjarmason
2022-08-21 13:59           ` [PATCH v6 09/17] submodule--helper: fix a leak with repo_clear() Ævar Arnfjörð Bjarmason
2022-08-21 13:59           ` [PATCH v6 10/17] submodule--helper: fix a memory leak in get_default_remote_submodule() Ævar Arnfjörð Bjarmason
2022-08-21 13:59           ` [PATCH v6 11/17] submodule--helper: fix "reference" leak Ævar Arnfjörð Bjarmason
2022-08-21 13:59           ` [PATCH v6 12/17] submodule--helper: fix obscure leak in module_add() Ævar Arnfjörð Bjarmason
2022-08-21 13:59           ` [PATCH v6 13/17] submodule--helper: fix a " Ævar Arnfjörð Bjarmason
2022-08-21 13:59           ` [PATCH v6 14/17] submodule--helper: fix a memory leak in print_status() Ævar Arnfjörð Bjarmason
2022-08-21 13:59           ` [PATCH v6 15/17] submodule--helper: free some "displaypath" in "struct update_data" Ævar Arnfjörð Bjarmason
2022-08-21 13:59           ` [PATCH v6 16/17] submodule--helper: free rest of " Ævar Arnfjörð Bjarmason
2022-08-24 23:03             ` Glen Choo
2022-08-21 13:59           ` [PATCH v6 17/17] submodule--helper: fix a configure_added_submodule() leak Ævar Arnfjörð Bjarmason
2022-08-31 23:14           ` Ævar Arnfjörð Bjarmason [this message]
2022-08-31 23:14             ` [PATCH v7 01/17] submodule--helper: fix a leak in "clone_submodule" Ævar Arnfjörð Bjarmason
2022-08-31 23:14             ` [PATCH v7 02/17] submodule--helper: fix trivial get_default_remote_submodule() leak Ævar Arnfjörð Bjarmason
2022-08-31 23:14             ` [PATCH v7 03/17] submodule--helper: fix most "struct pathspec" memory leaks Ævar Arnfjörð Bjarmason
2022-08-31 23:14             ` [PATCH v7 04/17] submodule--helper: "struct pathspec" memory leak in module_update() Ævar Arnfjörð Bjarmason
2022-08-31 23:14             ` [PATCH v7 05/17] submodule--helper: don't leak {run,capture}_command() cp.dir argument Ævar Arnfjörð Bjarmason
2022-08-31 23:14             ` [PATCH v7 06/17] submodule--helper: add and use *_release() functions Ævar Arnfjörð Bjarmason
2022-08-31 23:14             ` [PATCH v7 07/17] submodule--helper: fix "errmsg_str" memory leak Ævar Arnfjörð Bjarmason
2022-08-31 23:14             ` [PATCH v7 08/17] submodule--helper: fix "sm_path" and other "module_cb_list" leaks Ævar Arnfjörð Bjarmason
2022-08-31 23:14             ` [PATCH v7 09/17] submodule--helper: fix a leak with repo_clear() Ævar Arnfjörð Bjarmason
2022-08-31 23:14             ` [PATCH v7 10/17] submodule--helper: fix a memory leak in get_default_remote_submodule() Ævar Arnfjörð Bjarmason
2022-08-31 23:14             ` [PATCH v7 11/17] submodule--helper: fix "reference" leak Ævar Arnfjörð Bjarmason
2022-08-31 23:14             ` [PATCH v7 12/17] submodule--helper: fix obscure leak in module_add() Ævar Arnfjörð Bjarmason
2022-08-31 23:14             ` [PATCH v7 13/17] submodule--helper: fix a " Ævar Arnfjörð Bjarmason
2022-08-31 23:14             ` [PATCH v7 14/17] submodule--helper: fix a memory leak in print_status() Ævar Arnfjörð Bjarmason
2022-08-31 23:14             ` [PATCH v7 15/17] submodule--helper: free some "displaypath" in "struct update_data" Ævar Arnfjörð Bjarmason
2022-08-31 23:14             ` [PATCH v7 16/17] submodule--helper: free rest of " Ævar Arnfjörð Bjarmason
2022-09-01 21:20               ` Glen Choo
2022-08-31 23:14             ` [PATCH v7 17/17] submodule--helper: fix a configure_added_submodule() leak Ævar Arnfjörð Bjarmason
2022-09-01 21:23             ` [PATCH v7 00/17] submodule--helper: fix memory leaks Glen Choo

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover-v7-00.17-00000000000-20220831T231003Z-avarab@gmail.com \
    --to=avarab@gmail.com \
    --cc=chooglen@google.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=pc44800@gmail.com \
    --cc=raykar.ath@gmail.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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.