Re: [PATCH] diff --no-index: fix logic for paths ending in '/'
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 24, 2025, 22:24 UTC
- Message-ID
- <xmqq5xd7jxpq.fsf@gitster.g>
- In-Reply-To
- <xmqqa52jjxyq.fsf@gitster.g>
Junio C Hamano <gitster@pobox.com> writes:
Show 13 quoted lines
> Hence, I think the clean-up code of this function this goto ... > >> goto out; > > ... jumps to would need > > strbuf_release(&ps_match1); > strbuf_release(&ps_match2); > > added after that "out:" label? > > If we run this test with leak sanitizer, wouldn't it find leak in > these (I haven't tried it myself---I just am speculating)?
Now I did, and my speculations were both correct. The SANITIZE=leak build fails, and with these two releases the test passes.
You can squash this in, or I can do so myself if you like, if this is the only change that is required.
diff-no-index.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git c/diff-no-index.c w/diff-no-index.c index c70f82b805..f320424f05 100644 --- c/diff-no-index.c +++ w/diff-no-index.c @@ -436,6 +436,8 @@ int diff_no_index(struct rev_info *revs, const struct git_hash_algo *algop, for (i = 0; i < ARRAY_SIZE(to_free); i++) free(to_free[i]); strbuf_release(&replacement); + strbuf_release(&ps_match1); + strbuf_release(&ps_match2); if (ps) clear_pathspec(ps); return ret;