aboutsummaryrefslogtreecommitdiffstats
path: root/ref-filter.c
diff options
context:
space:
mode:
authorRené Scharfe <l.s.r@web.de>2020-09-26 10:37:29 +0200
committerJunio C Hamano <gitster@pobox.com>2020-09-26 15:39:49 -0700
commit5336d5069626a9e06e224cbc1730ee96c5742108 (patch)
treef53b08900182764557b36756b90ab224db3499e0 /ref-filter.c
parentb59cdffd7e3d791ee289ebb46d7109ad3d51d7ea (diff)
downloadgit-5336d5069626a9e06e224cbc1730ee96c5742108.tar.gz
ref-filter: plug memory leak in reach_filter()
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> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'ref-filter.c')
-rw-r--r--ref-filter.c4
1 files changed, 3 insertions, 1 deletions
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++) {