From 415671a28273e5bfbe9aa00a0e386f025720ac23 Mon Sep 17 00:00:00 2001 From: Yusuke Endoh Date: Fri, 12 Nov 2021 14:37:16 +0900 Subject: [PATCH] parse.y: Fix memory leak at parse error Local variable tables might leak at the parse error. --- parse.y | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/parse.y b/parse.y index 6461b73c73..8bfb7f2757 100644 --- a/parse.y +++ b/parse.y @@ -6353,11 +6353,17 @@ yycompile(VALUE vparser, struct parser_params *p, VALUE fname, int line) } p->ruby_sourceline = line - 1; + p->lvtbl = NULL; + p->ast = ast = rb_ast_new(); rb_suppress_tracing(yycompile0, (VALUE)p); p->ast = 0; RB_GC_GUARD(vparser); /* prohibit tail call optimization */ + while (p->lvtbl) { + local_pop(p); + } + return ast; } #endif /* !RIPPER */