diff options
author | René Scharfe <l.s.r@web.de> | 2020-09-26 10:37:29 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-09-26 15:39:49 -0700 |
commit | 5336d5069626a9e06e224cbc1730ee96c5742108 (patch) | |
tree | f53b08900182764557b36756b90ab224db3499e0 /ref-filter.c | |
parent | b59cdffd7e3d791ee289ebb46d7109ad3d51d7ea (diff) | |
download | git-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.c | 4 |
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++) { |