{"thread":{"id":"51602","subject":"[PATCH] dir-iterator: release strbuf after use","startedAt":"2019-08-07T11:15:21Z","lastAt":"2019-08-07T11:15:21Z","messageCount":1,"participants":["René Scharfe"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"380064","messageId":"3729e2f1-2995-86ae-cfa0-a6fc4ca64917@web.de","threadId":"51602","inReplyTo":null,"subject":"[PATCH] dir-iterator: release strbuf after use","fromName":"René Scharfe","fromEmail":"l.s.r@web.de","sentAt":"2019-08-07T11:15:14Z","receivedAt":"2019-08-07T11:15:21Z","isPatch":true,"sender":{"key":"l.s.r@web.de","avatar":"https://avatars.githubusercontent.com/u/26122331?v=4"},"body":"Signed-off-by: René Scharfe <l.s.r@web.de>\n---\nPatch generated with --function-context for easier review.\n\nThe plugged leak was added after v2.22.0 (2019-06-07) by 3012397e03\n(dir-iterator: refactor state machine model, 2019-07-10).\n\n refs/files-backend.c | 4 +++-\n 1 file changed, 3 insertions(+), 1 deletion(-)\n\ndiff --git a/refs/files-backend.c b/refs/files-backend.c\nindex b1f8f53a09..d60767ab73 100644\n--- a/refs/files-backend.c\n+++ b/refs/files-backend.c\n@@ -2143,24 +2143,26 @@ static struct ref_iterator_vtable files_reflog_iterator_vtable = {\n static struct ref_iterator *reflog_iterator_begin(struct ref_store *ref_store,\n \t\t\t\t\t\t  const char *gitdir)\n {\n \tstruct dir_iterator *diter;\n \tstruct files_reflog_iterator *iter;\n \tstruct ref_iterator *ref_iterator;\n \tstruct strbuf sb = STRBUF_INIT;\n\n \tstrbuf_addf(&sb, \"%s/logs\", gitdir);\n\n \tditer = dir_iterator_begin(sb.buf, 0);\n-\tif(!diter)\n+\tif (!diter) {\n+\t\tstrbuf_release(&sb);\n \t\treturn empty_ref_iterator_begin();\n+\t}\n\n \titer = xcalloc(1, sizeof(*iter));\n \tref_iterator = &iter->base;\n\n \tbase_ref_iterator_init(ref_iterator, &files_reflog_iterator_vtable, 0);\n \titer->dir_iterator = diter;\n \titer->ref_store = ref_store;\n \tstrbuf_release(&sb);\n\n \treturn ref_iterator;\n }\n--\n2.22.0\n"}]}