From: Patrick Steinhardt <ps@pks.im>
To: git@vger.kernel.org
Cc: James Liu <james@jamesliu.io>, Phillip Wood <phillip.wood123@gmail.com>
Subject: [PATCH v2 00/22] Memory leak fixes (pt.4)
Date: Thu, 8 Aug 2024 15:04:28 +0200 [thread overview]
Message-ID: <cover.1723121979.git.ps@pks.im> (raw)
In-Reply-To: <cover.1722933642.git.ps@pks.im>
[-- Attachment #1: Type: text/plain, Size: 12399 bytes --]
Hi,
this is the second version of my fourth batch of patches that fix
various memory leaks.
Changes compared to v1:
- Adapt the memory leak fix for command characters to instead use a
`comment_line_str_allocated` variable.
- Clarify some commit messages.
- Drop the TODO comment about `rebase.gpgsign`. Turns out that this is
working as intended, as explained by Phillip.
Thanks!
Patrick
Patrick Steinhardt (22):
remote: plug memory leak when aliasing URLs
git: fix leaking system paths
object-file: fix memory leak when reading corrupted headers
object-name: fix leaking symlink paths in object context
bulk-checkin: fix leaking state TODO
read-cache: fix leaking hashfile when writing index fails
submodule-config: fix leaking name enrty when traversing submodules
config: fix leaking comment character config
builtin/rebase: fix leaking `commit.gpgsign` value
builtin/notes: fix leaking `struct notes_tree` when merging notes
builtin/fast-import: plug trivial memory leaks
builtin/fast-export: fix leaking diff options
builtin/fast-export: plug leaking tag names
merge-ort: unconditionally release attributes index
sequencer: release todo list on error paths
unpack-trees: clear index when not propagating it
diff: fix leak when parsing invalid ignore regex option
builtin/format-patch: fix various trivial memory leaks
userdiff: fix leaking memory for configured diff drivers
builtin/log: fix leak when showing converted blob contents
diff: free state populated via options
builtin/diff: free symmetric diff members
builtin/commit.c | 7 +-
builtin/diff.c | 10 ++-
builtin/fast-export.c | 19 ++++--
builtin/fast-import.c | 8 ++-
builtin/log.c | 13 +++-
builtin/notes.c | 9 ++-
builtin/rebase.c | 1 +
bulk-checkin.c | 2 +
config.c | 4 +-
csum-file.c | 2 +-
csum-file.h | 10 +++
diff.c | 16 ++++-
environment.c | 1 +
environment.h | 1 +
git.c | 12 +++-
merge-ort.c | 3 +-
object-file.c | 1 +
object-name.c | 1 +
range-diff.c | 6 +-
read-cache.c | 97 ++++++++++++++++-----------
remote.c | 2 +
sequencer.c | 67 ++++++++++++------
submodule-config.c | 18 +++--
t/t0210-trace2-normal.sh | 2 +-
t/t1006-cat-file.sh | 1 +
t/t1050-large.sh | 1 +
t/t1450-fsck.sh | 1 +
t/t1601-index-bogus.sh | 2 +
t/t2107-update-index-basic.sh | 1 +
t/t3310-notes-merge-manual-resolve.sh | 1 +
t/t3311-notes-merge-fanout.sh | 1 +
t/t3404-rebase-interactive.sh | 1 +
t/t3435-rebase-gpg-sign.sh | 1 +
t/t3507-cherry-pick-conflict.sh | 1 +
t/t3510-cherry-pick-sequence.sh | 1 +
t/t3705-add-sparse-checkout.sh | 1 +
t/t4013-diff-various.sh | 1 +
t/t4014-format-patch.sh | 1 +
t/t4018-diff-funcname.sh | 1 +
t/t4030-diff-textconv.sh | 2 +
t/t4042-diff-textconv-caching.sh | 2 +
t/t4048-diff-combined-binary.sh | 1 +
t/t4064-diff-oidfind.sh | 2 +
t/t4065-diff-anchored.sh | 1 +
t/t4068-diff-symmetric-merge-base.sh | 1 +
t/t4069-remerge-diff.sh | 1 +
t/t4108-apply-threeway.sh | 1 +
t/t4209-log-pickaxe.sh | 2 +
t/t6421-merge-partial-clone.sh | 1 +
t/t6428-merge-conflicts-sparse.sh | 1 +
t/t7008-filter-branch-null-sha1.sh | 1 +
t/t7030-verify-tag.sh | 1 +
t/t7817-grep-sparse-checkout.sh | 1 +
t/t9300-fast-import.sh | 1 +
t/t9304-fast-import-marks.sh | 2 +
t/t9351-fast-export-anonymize.sh | 1 +
unpack-trees.c | 2 +
userdiff.c | 38 ++++++++---
userdiff.h | 4 ++
59 files changed, 288 insertions(+), 106 deletions(-)
Range-diff against v1:
1: 6e2fcd85c7 = 1: 2afa51f9ff remote: plug memory leak when aliasing URLs
2: 9574995a24 = 2: 324140e4fd git: fix leaking system paths
3: f7e67d02d2 = 3: 43a38a2281 object-file: fix memory leak when reading corrupted headers
4: a9caaaed55 = 4: 9d3dc145e8 object-name: fix leaking symlink paths in object context
5: 794af66103 = 5: 454139e7a4 bulk-checkin: fix leaking state TODO
6: 2810cada0a = 6: f8b7195796 read-cache: fix leaking hashfile when writing index fails
7: 03f699cf39 = 7: 762fb5aa73 submodule-config: fix leaking name enrty when traversing submodules
8: a34c90a552 ! 8: 8fbd72a100 config: fix leaking comment character config
@@ Commit message
without free'ing the previous value. In fact, it can't easily free the
value in the first place because it may contain a string constant.
- Refactor the code so that we initialize the value with another array.
- This allows us to free the value in case the string is not pointing to
- that constant array anymore.
+ Refactor the code such that we track allocated comment character strings
+ via a separate non-constant variable `comment_line_str_allocated`. Adapt
+ sites that set `comment_line_str` to set both and free the old value
+ that was stored in `comment_line_str_allocated`.
This memory leak is being hit in t3404. As there are still other memory
leaks in that file we cannot yet mark it as passing with leak checking
@@ Commit message
Signed-off-by: Patrick Steinhardt <ps@pks.im>
+ ## builtin/commit.c ##
+@@ builtin/commit.c: static void adjust_comment_line_char(const struct strbuf *sb)
+ const char *p;
+
+ if (!memchr(sb->buf, candidates[0], sb->len)) {
+- comment_line_str = xstrfmt("%c", candidates[0]);
++ free(comment_line_str_allocated);
++ comment_line_str = comment_line_str_allocated =
++ xstrfmt("%c", candidates[0]);
+ return;
+ }
+
+@@ builtin/commit.c: static void adjust_comment_line_char(const struct strbuf *sb)
+ if (!*p)
+ die(_("unable to select a comment character that is not used\n"
+ "in the current commit message"));
+- comment_line_str = xstrfmt("%c", *p);
++ free(comment_line_str_allocated);
++ comment_line_str = comment_line_str_allocated = xstrfmt("%c", *p);
+ }
+
+ static void prepare_amend_commit(struct commit *commit, struct strbuf *sb,
+
## config.c ##
@@ config.c: static int git_default_core_config(const char *var, const char *value,
else if (value[0]) {
if (strchr(value, '\n'))
return error(_("%s cannot contain newline"), var);
-+ if (comment_line_str != comment_line_str_default)
-+ free((char *) comment_line_str);
- comment_line_str = xstrdup(value);
+- comment_line_str = xstrdup(value);
++ free(comment_line_str_allocated);
++ comment_line_str = comment_line_str_allocated =
++ xstrdup(value);
auto_comment_line_char = 0;
} else
+ return error(_("%s must have at least one character"), var);
## environment.c ##
@@ environment.c: int protect_ntfs = PROTECT_NTFS_DEFAULT;
- * The character that begins a commented line in user-editable file
* that is subject to stripspace.
*/
--const char *comment_line_str = "#";
-+const char comment_line_str_default[] = "#";
-+const char *comment_line_str = comment_line_str_default;
+ const char *comment_line_str = "#";
++char *comment_line_str_allocated;
int auto_comment_line_char;
/* Parallel index stat data preload? */
## environment.h ##
@@ environment.h: struct strvec;
- * The character that begins a commented line in user-editable file
* that is subject to stripspace.
*/
-+extern const char comment_line_str_default[];
extern const char *comment_line_str;
++extern char *comment_line_str_allocated;
extern int auto_comment_line_char;
+ /*
9: 05290fc1f1 ! 9: e497b76e9c builtin/rebase: fix leaking `commit.gpgsign` value
@@ Metadata
## Commit message ##
builtin/rebase: fix leaking `commit.gpgsign` value
- In `get_replay_opts()`, we unconditionally override the `gpg_sign` field
- that already got populated by `sequencer_init_config()` in case the user
- has "commit.gpgsign" set in their config. It is kind of dubious whether
- this is the correct thing to do or a bug. What is clear though is that
- this creates a memory leak.
+ In `get_replay_opts()`, we override the `gpg_sign` field that already
+ got populated by `sequencer_init_config()` in case the user has
+ "commit.gpgsign" set in their config. This creates a memory leak because
+ we overwrite the previously assigned value, which may have already
+ pointed to an allocated string.
- Let's mark this assignment with a TODO comment to figure out whether
- this needs to be fixed or not. Meanwhile though, let's plug the memory
- leak.
+ Let's plug the memory leak by freeing the value before we overwrite it.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
@@ builtin/rebase.c: static struct replay_opts get_replay_opts(const struct rebase_
replay.committer_date_is_author_date =
opts->committer_date_is_author_date;
replay.ignore_date = opts->ignore_date;
-+
-+ /*
-+ * TODO: Is it really intentional that we unconditionally override
-+ * `replay.gpg_sign` even if it has already been initialized via the
-+ * configuration?
-+ */
+ free(replay.gpg_sign);
replay.gpg_sign = xstrdup_or_null(opts->gpg_sign_opt);
-+
replay.reflog_action = xstrdup(opts->reflog_action);
if (opts->strategy)
- replay.strategy = xstrdup_or_null(opts->strategy);
## sequencer.c ##
@@ sequencer.c: static int git_sequencer_config(const char *k, const char *v,
10: 4f5d490074 = 10: c886b666f7 builtin/notes: fix leaking `struct notes_tree` when merging notes
11: 798b911f77 = 11: d1c757157b builtin/fast-import: plug trivial memory leaks
12: 660732d29d = 12: fa2d5c5d6b builtin/fast-export: fix leaking diff options
13: 64366155de = 13: d9dd860d2a builtin/fast-export: plug leaking tag names
14: b12015b3c3 = 14: 8f6860485e merge-ort: unconditionally release attributes index
15: df4c21b49f ! 15: ea6a350f31 sequencer: release todo list on error paths
@@ sequencer.c: int sequencer_pick_revisions(struct repository *r,
&oid,
NULL);
- return error(_("%s: can't cherry-pick a %s"),
+- name, type_name(type));
+ res = error(_("%s: can't cherry-pick a %s"),
- name, type_name(type));
++ name, type_name(type));
+ goto out;
}
- } else
16: 1f8553fd43 = 16: 2755023742 unpack-trees: clear index when not propagating it
17: c6db8df324 = 17: edf6f148cd diff: fix leak when parsing invalid ignore regex option
18: bf818a8a79 = 18: 343e3bd4df builtin/format-patch: fix various trivial memory leaks
19: ef780aa360 = 19: be2c5b0bca userdiff: fix leaking memory for configured diff drivers
20: f3882986a3 = 20: 7888203833 builtin/log: fix leak when showing converted blob contents
21: a49bb2e0cc = 21: 245fc30afb diff: free state populated via options
22: fb52599404 = 22: 343ddcd17b builtin/diff: free symmetric diff members
--
2.46.0.46.g406f326d27.dirty
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2024-08-08 13:04 UTC|newest]
Thread overview: 146+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-06 8:59 [PATCH 00/22] Memory leak fixes (pt.4) Patrick Steinhardt
2024-08-06 8:59 ` [PATCH 01/22] remote: plug memory leak when aliasing URLs Patrick Steinhardt
2024-08-06 8:59 ` [PATCH 02/22] git: fix leaking system paths Patrick Steinhardt
2024-08-07 4:02 ` James Liu
2024-08-06 8:59 ` [PATCH 03/22] object-file: fix memory leak when reading corrupted headers Patrick Steinhardt
2024-08-06 8:59 ` [PATCH 04/22] object-name: fix leaking symlink paths in object context Patrick Steinhardt
2024-08-06 8:59 ` [PATCH 05/22] bulk-checkin: fix leaking state TODO Patrick Steinhardt
2024-08-06 9:00 ` [PATCH 06/22] read-cache: fix leaking hashfile when writing index fails Patrick Steinhardt
2024-08-07 7:01 ` James Liu
2024-08-08 5:04 ` Patrick Steinhardt
2024-08-06 9:00 ` [PATCH 07/22] submodule-config: fix leaking name enrty when traversing submodules Patrick Steinhardt
2024-08-06 9:00 ` [PATCH 08/22] config: fix leaking comment character config Patrick Steinhardt
2024-08-07 7:11 ` James Liu
2024-08-08 5:04 ` Patrick Steinhardt
2024-08-08 15:54 ` Junio C Hamano
2024-08-06 9:00 ` [PATCH 09/22] builtin/rebase: fix leaking `commit.gpgsign` value Patrick Steinhardt
2024-08-07 7:32 ` James Liu
2024-08-08 5:05 ` Patrick Steinhardt
2024-08-08 10:07 ` Phillip Wood
2024-08-08 12:58 ` Patrick Steinhardt
2024-08-06 9:00 ` [PATCH 10/22] builtin/notes: fix leaking `struct notes_tree` when merging notes Patrick Steinhardt
2024-08-06 9:00 ` [PATCH 11/22] builtin/fast-import: plug trivial memory leaks Patrick Steinhardt
2024-08-06 9:00 ` [PATCH 12/22] builtin/fast-export: fix leaking diff options Patrick Steinhardt
2024-08-06 9:00 ` [PATCH 13/22] builtin/fast-export: plug leaking tag names Patrick Steinhardt
2024-08-07 8:31 ` James Liu
2024-08-08 5:05 ` Patrick Steinhardt
2024-08-06 9:00 ` [PATCH 14/22] merge-ort: unconditionally release attributes index Patrick Steinhardt
2024-08-06 9:00 ` [PATCH 15/22] sequencer: release todo list on error paths Patrick Steinhardt
2024-08-08 10:08 ` Phillip Wood
2024-08-08 16:31 ` Junio C Hamano
2024-08-06 9:00 ` [PATCH 16/22] unpack-trees: clear index when not propagating it Patrick Steinhardt
2024-08-06 9:00 ` [PATCH 17/22] diff: fix leak when parsing invalid ignore regex option Patrick Steinhardt
2024-08-06 9:00 ` [PATCH 18/22] builtin/format-patch: fix various trivial memory leaks Patrick Steinhardt
2024-08-07 8:51 ` James Liu
2024-08-08 5:05 ` Patrick Steinhardt
2024-08-06 9:01 ` [PATCH 19/22] userdiff: fix leaking memory for configured diff drivers Patrick Steinhardt
2024-08-07 9:25 ` James Liu
2024-08-08 5:05 ` Patrick Steinhardt
2024-08-08 16:05 ` Junio C Hamano
2024-08-06 9:01 ` [PATCH 20/22] builtin/log: fix leak when showing converted blob contents Patrick Steinhardt
2024-08-06 9:01 ` [PATCH 21/22] diff: free state populated via options Patrick Steinhardt
2024-08-06 9:01 ` [PATCH 22/22] builtin/diff: free symmetric diff members Patrick Steinhardt
2024-08-07 9:27 ` [PATCH 00/22] Memory leak fixes (pt.4) James Liu
2024-08-08 5:05 ` Patrick Steinhardt
2024-08-08 6:00 ` James Liu
2024-08-07 16:59 ` Junio C Hamano
2024-08-07 17:03 ` Patrick Steinhardt
2024-08-08 0:32 ` Junio C Hamano
2024-08-08 13:04 ` Patrick Steinhardt [this message]
2024-08-08 13:04 ` [PATCH v2 01/22] remote: plug memory leak when aliasing URLs Patrick Steinhardt
2024-08-12 8:27 ` karthik nayak
2024-08-12 14:08 ` Taylor Blau
2024-08-12 14:37 ` Jeff King
2024-08-13 6:34 ` Patrick Steinhardt
2024-08-08 13:04 ` [PATCH v2 02/22] git: fix leaking system paths Patrick Steinhardt
2024-08-12 14:11 ` Taylor Blau
2024-08-13 6:30 ` Patrick Steinhardt
2024-08-13 16:02 ` Junio C Hamano
2024-08-08 13:04 ` [PATCH v2 03/22] object-file: fix memory leak when reading corrupted headers Patrick Steinhardt
2024-08-12 8:43 ` karthik nayak
2024-08-08 13:04 ` [PATCH v2 04/22] object-name: fix leaking symlink paths in object context Patrick Steinhardt
2024-08-08 13:04 ` [PATCH v2 05/22] bulk-checkin: fix leaking state TODO Patrick Steinhardt
2024-08-08 13:04 ` [PATCH v2 06/22] read-cache: fix leaking hashfile when writing index fails Patrick Steinhardt
2024-08-08 13:05 ` [PATCH v2 07/22] submodule-config: fix leaking name enrty when traversing submodules Patrick Steinhardt
2024-08-08 13:05 ` [PATCH v2 08/22] config: fix leaking comment character config Patrick Steinhardt
2024-08-08 17:12 ` Junio C Hamano
2024-08-12 7:45 ` Patrick Steinhardt
2024-08-12 20:32 ` Junio C Hamano
2024-08-13 6:54 ` Patrick Steinhardt
2024-08-08 13:05 ` [PATCH v2 09/22] builtin/rebase: fix leaking `commit.gpgsign` value Patrick Steinhardt
2024-08-08 13:05 ` [PATCH v2 10/22] builtin/notes: fix leaking `struct notes_tree` when merging notes Patrick Steinhardt
2024-08-08 13:05 ` [PATCH v2 11/22] builtin/fast-import: plug trivial memory leaks Patrick Steinhardt
2024-08-08 13:05 ` [PATCH v2 12/22] builtin/fast-export: fix leaking diff options Patrick Steinhardt
2024-08-12 9:05 ` karthik nayak
2024-08-08 13:05 ` [PATCH v2 13/22] builtin/fast-export: plug leaking tag names Patrick Steinhardt
2024-08-08 13:05 ` [PATCH v2 14/22] merge-ort: unconditionally release attributes index Patrick Steinhardt
2024-08-08 13:05 ` [PATCH v2 15/22] sequencer: release todo list on error paths Patrick Steinhardt
2024-08-08 13:05 ` [PATCH v2 16/22] unpack-trees: clear index when not propagating it Patrick Steinhardt
2024-08-08 13:05 ` [PATCH v2 17/22] diff: fix leak when parsing invalid ignore regex option Patrick Steinhardt
2024-08-08 13:05 ` [PATCH v2 18/22] builtin/format-patch: fix various trivial memory leaks Patrick Steinhardt
2024-08-08 13:05 ` [PATCH v2 19/22] userdiff: fix leaking memory for configured diff drivers Patrick Steinhardt
2024-08-08 13:06 ` [PATCH v2 20/22] builtin/log: fix leak when showing converted blob contents Patrick Steinhardt
2024-08-08 13:06 ` [PATCH v2 21/22] diff: free state populated via options Patrick Steinhardt
2024-08-08 13:06 ` [PATCH v2 22/22] builtin/diff: free symmetric diff members Patrick Steinhardt
2024-08-12 9:12 ` karthik nayak
2024-08-12 9:13 ` [PATCH v2 00/22] Memory leak fixes (pt.4) karthik nayak
2024-08-12 15:49 ` Junio C Hamano
2024-08-13 6:27 ` Patrick Steinhardt
2024-08-12 14:01 ` Phillip Wood
2024-08-12 15:50 ` Junio C Hamano
2024-08-13 9:31 ` [PATCH v3 " Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 01/22] remote: plug memory leak when aliasing URLs Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 02/22] git: fix leaking system paths Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 03/22] object-file: fix memory leak when reading corrupted headers Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 04/22] object-name: fix leaking symlink paths in object context Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 05/22] bulk-checkin: fix leaking state TODO Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 06/22] read-cache: fix leaking hashfile when writing index fails Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 07/22] submodule-config: fix leaking name entry when traversing submodules Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 08/22] config: fix leaking comment character config Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 09/22] builtin/rebase: fix leaking `commit.gpgsign` value Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 10/22] builtin/notes: fix leaking `struct notes_tree` when merging notes Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 11/22] builtin/fast-import: plug trivial memory leaks Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 12/22] builtin/fast-export: fix leaking diff options Patrick Steinhardt
2024-08-13 16:34 ` Junio C Hamano
2024-08-14 4:49 ` Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 13/22] builtin/fast-export: plug leaking tag names Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 14/22] merge-ort: unconditionally release attributes index Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 15/22] sequencer: release todo list on error paths Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 16/22] unpack-trees: clear index when not propagating it Patrick Steinhardt
2024-08-13 9:31 ` [PATCH v3 17/22] diff: fix leak when parsing invalid ignore regex option Patrick Steinhardt
2024-08-13 9:32 ` [PATCH v3 18/22] builtin/format-patch: fix various trivial memory leaks Patrick Steinhardt
2024-08-13 16:55 ` Junio C Hamano
2024-08-14 4:56 ` Patrick Steinhardt
2024-08-13 16:55 ` Junio C Hamano
2024-08-13 9:32 ` [PATCH v3 19/22] userdiff: fix leaking memory for configured diff drivers Patrick Steinhardt
2024-08-13 9:32 ` [PATCH v3 20/22] builtin/log: fix leak when showing converted blob contents Patrick Steinhardt
2024-08-13 9:32 ` [PATCH v3 21/22] diff: free state populated via options Patrick Steinhardt
2024-08-13 16:31 ` Junio C Hamano
2024-08-13 9:32 ` [PATCH v3 22/22] builtin/diff: free symmetric diff members Patrick Steinhardt
2024-08-13 16:25 ` Junio C Hamano
2024-08-14 5:01 ` Patrick Steinhardt
2024-08-14 15:28 ` Junio C Hamano
2024-08-13 16:58 ` [PATCH v3 00/22] Memory leak fixes (pt.4) Junio C Hamano
2024-08-14 6:51 ` [PATCH v4 " Patrick Steinhardt
2024-08-14 6:51 ` [PATCH v4 01/22] remote: plug memory leak when aliasing URLs Patrick Steinhardt
2024-08-14 6:51 ` [PATCH v4 02/22] git: fix leaking system paths Patrick Steinhardt
2024-08-14 6:51 ` [PATCH v4 03/22] object-file: fix memory leak when reading corrupted headers Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 04/22] object-name: fix leaking symlink paths in object context Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 05/22] bulk-checkin: fix leaking state TODO Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 06/22] read-cache: fix leaking hashfile when writing index fails Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 07/22] submodule-config: fix leaking name entry when traversing submodules Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 08/22] config: fix leaking comment character config Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 09/22] builtin/rebase: fix leaking `commit.gpgsign` value Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 10/22] builtin/notes: fix leaking `struct notes_tree` when merging notes Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 11/22] builtin/fast-import: plug trivial memory leaks Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 12/22] builtin/fast-export: fix leaking diff options Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 13/22] builtin/fast-export: plug leaking tag names Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 14/22] merge-ort: unconditionally release attributes index Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 15/22] sequencer: release todo list on error paths Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 16/22] unpack-trees: clear index when not propagating it Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 17/22] diff: fix leak when parsing invalid ignore regex option Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 18/22] builtin/format-patch: fix various trivial memory leaks Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 19/22] userdiff: fix leaking memory for configured diff drivers Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 20/22] builtin/log: fix leak when showing converted blob contents Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 21/22] diff: free state populated via options Patrick Steinhardt
2024-08-14 6:52 ` [PATCH v4 22/22] builtin/diff: free symmetric diff members Patrick Steinhardt
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.1723121979.git.ps@pks.im \
--to=ps@pks.im \
--cc=git@vger.kernel.org \
--cc=james@jamesliu.io \
--cc=phillip.wood123@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.