Re: [PATCH 20/22] match-trees: fix leaking prefixes in `shift_tree()`
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 4, 2024, 22:42 UTC
- Message-ID
- <xmqqa5gn6nwu.fsf@gitster.g>
- In-Reply-To
- <05461e3b1c02488046ef480f20c109b51b9b7691.1724656120.git.ps@pks.im>
Patrick Steinhardt <ps@pks.im> writes:
Show 15 quoted lines
> In `shift_tree()` we allocate two empty strings that we end up > passing to `match_trees()`. If that function finds a better match it > will update these pointers to point to a newly allocated strings, > freeing the old strings. We never free the final results though, neither > the ones we have allocated ourselves, nor the one that `match_trees()` > might've returned to us. > > Fix the resulting memory leaks by creating a common exit path where we > free them. > > Signed-off-by: Patrick Steinhardt <ps@pks.im> > --- > match-trees.c | 10 +++++++--- > t/t6409-merge-subtree.sh | 1 + > 2 files changed, 8 insertions(+), 3 deletions(-)
We are not going to take the "best_match" out of this function, so somebody ought to free it, and that somebody must be this function.
Makes sense.