Signed-off-by: René Scharfe <l....@web.de>
---
Patch generated with --function-context for easier review.

The plugged leak was added after v2.22.0 (2019-06-07) by 3012397e03
(dir-iterator: refactor state machine model, 2019-07-10).

 refs/files-backend.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/refs/files-backend.c b/refs/files-backend.c
index b1f8f53a09..d60767ab73 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -2143,24 +2143,26 @@ static struct ref_iterator_vtable 
files_reflog_iterator_vtable = {
 static struct ref_iterator *reflog_iterator_begin(struct ref_store *ref_store,
                                                  const char *gitdir)
 {
        struct dir_iterator *diter;
        struct files_reflog_iterator *iter;
        struct ref_iterator *ref_iterator;
        struct strbuf sb = STRBUF_INIT;

        strbuf_addf(&sb, "%s/logs", gitdir);

        diter = dir_iterator_begin(sb.buf, 0);
-       if(!diter)
+       if (!diter) {
+               strbuf_release(&sb);
                return empty_ref_iterator_begin();
+       }

        iter = xcalloc(1, sizeof(*iter));
        ref_iterator = &iter->base;

        base_ref_iterator_init(ref_iterator, &files_reflog_iterator_vtable, 0);
        iter->dir_iterator = diter;
        iter->ref_store = ref_store;
        strbuf_release(&sb);

        return ref_iterator;
 }
--
2.22.0

Reply via email to