Hi Ævar, On Thu, 17 Nov 2022, Ævar Arnfjörð Bjarmason wrote: > > On Tue, Nov 15 2022, Johannes Schindelin via GitGitGadget wrote: > > > + if (starts_with(line, "diff --git ")) { > > + struct patch patch = { 0 }; > > + struct strbuf root = STRBUF_INIT; > > + int linenr = 0; > > + int orig_len; > > + > > + state = MBOX_IN_DIFF; > > + old_count = new_count = 0; > > + strbuf_addch(&buf, '\n'); > > + if (!util->diff_offset) > > + util->diff_offset = buf.len; > > + line[len - 1] = '\n'; > > + orig_len = len; > > + len = parse_git_diff_header(&root, &linenr, 1, line, > > + len, size, &patch); > > Try this with SANITIZE=leak, e.g. this seems to fix 1/4 leaks that pop > up if you try the command noted in the patch: > > diff --git a/range-diff.c b/range-diff.c > index 77fa9b970b1..7ff33f92e39 100644 > --- a/range-diff.c > +++ b/range-diff.c > @@ -142,6 +142,7 @@ static int read_mbox(const char *path, struct string_list *list) > orig_len = len; > len = parse_git_diff_header(&root, &linenr, 1, line, > len, size, &patch); > + free(patch.def_name); > if (len < 0) { > error(_("could not parse git header '%.*s'"), > orig_len, line); Thank you for keeping your feedback concise. Much appreciated. This will be addressed in the next iteration, Johannes