# [PATCH] ref-filter: plug memory leak in reach_filter()

3 messages from 2020-09-26 to 2020-09-26. Participants: René Scharfe, Aaron Lipman, Junio C Hamano.
Thread: https://gitlist.dev/t/54308

## René Scharfe, 2020-09-26 08:37

Subject: [PATCH] ref-filter: plug memory leak in reach_filter()
Message-ID: <d9922bbe-4e34-45fe-66a5-d7b5bf42117a@web.de>
URL: https://gitlist.dev/e/d9922bbe-4e34-45fe-66a5-d7b5bf42117a%40web.de

```
21bf933928 (ref-filter: allow merged and no-merged filters, 2020-09-15)
added an early return to reach_filter().  Avoid leaking the memory of a
then unused array by postponing its allocation until we know we need it.

Signed-off-by: René Scharfe <l.s.r@web.de>
---
 ref-filter.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/ref-filter.c b/ref-filter.c
index 5550a0d34c..e0b8cd3ed8 100644
--- a/ref-filter.c
+++ b/ref-filter.c
@@ -2239,12 +2239,14 @@ static void reach_filter(struct ref_array *array,
 {
 	struct rev_info revs;
 	int i, old_nr;
-	struct commit **to_clear = xcalloc(sizeof(struct commit *), array->nr);
+	struct commit **to_clear;
 	struct commit_list *cr;

 	if (!check_reachable)
 		return;

+	to_clear = xcalloc(sizeof(struct commit *), array->nr);
+
 	repo_init_revisions(the_repository, &revs, NULL);

 	for (i = 0; i < array->nr; i++) {
--
2.28.0

```

## Aaron Lipman, 2020-09-26 14:53

Subject: Re: [PATCH] ref-filter: plug memory leak in reach_filter()
Message-ID: <CAEJZ43hYgdCWGOaMHc=V_YBz0S3LCnSP6tZ1=ZTEwiNBwbHFqw@mail.gmail.com>
URL: https://gitlist.dev/e/CAEJZ43hYgdCWGOaMHc%3DV_YBz0S3LCnSP6tZ1%3DZTEwiNBwbHFqw%40mail.gmail.com
In-Reply-To: <d9922bbe-4e34-45fe-66a5-d7b5bf42117a@web.de>

```
Thanks for catching that!

```

## Junio C Hamano, 2020-09-26 22:40

Subject: Re: [PATCH] ref-filter: plug memory leak in reach_filter()
Message-ID: <xmqqft74i2lx.fsf@gitster.c.googlers.com>
URL: https://gitlist.dev/e/xmqqft74i2lx.fsf%40gitster.c.googlers.com
In-Reply-To: <CAEJZ43hYgdCWGOaMHc=V_YBz0S3LCnSP6tZ1=ZTEwiNBwbHFqw@mail.gmail.com>

```
Aaron Lipman <alipman88@gmail.com> writes:

> Thanks for catching that!

Yeah, looks good.  Thanks, both.

```
