Calling repo_init_revisions() and release_revisions() in that order leaks the memory allocated for the parseopts array in the embedded struct diff_options member. Get rid of that leak by reducing the lifetime of that array. Original patch: https://lore.kernel.org/git/4fd82dc6-e0f8-0638-5b10-16bfef39a171@xxxxxx/ Submitted separately from that thread because it's independent enough. diff: factor out add_diff_options() diff: let prep_parse_options() return parseopt array diff: remove parseopts member of struct diff_options builtin/range-diff.c | 2 +- diff-no-index.c | 3 +-- diff.c | 26 +++++++++++++++----------- diff.h | 1 + 4 files changed, 18 insertions(+), 14 deletions(-) -- 2.38.1