On 8/4/2020 3:50 AM, Jeff King wrote: > If we're given an empty pathspec, we refuse to set up bloom filters, as > described in f3c2a36810 (revision: empty pathspecs should not use Bloom > filters, 2020-07-01). > > But before the empty string check, we drop any trailing slash by > allocating a new string without it. So a pathspec consisting only of "/" > will allocate that string, but then still cause us to bail, leaking the > new string. Let's make sure to free it. > > Signed-off-by: Jeff King <peff@xxxxxxxx> > --- > Just noticed while reading the function to fix the previous patch. > > I'm not even sure if it's possible to get here with a pathspec of "/", > since we'd probably give a "/ is outside repository" error before then. > > So maybe this case doesn't even matter. If it doesn't, then it might > simplify the function a bit to do the empty-pathspec check before > handling trailing slashes. But handling it does help make it more clear > this function is doing the right thing no matter what input it is given, > so that's what I went with here. Works for me. Thanks for your careful attention here. -Stolee > revision.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/revision.c b/revision.c > index 5ed86e4524..b80868556b 100644 > --- a/revision.c > +++ b/revision.c > @@ -702,6 +702,7 @@ static void prepare_to_use_bloom_filter(struct rev_info *revs) > len = strlen(path); > if (!len) { > revs->bloom_filter_settings = NULL; > + free(path_alloc); > return; > } > >