From 39bbd983561a028dc67a52c2da1c6b13981d2e14 Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Fri, 7 Dec 2018 12:50:58 +0100 Subject: [PATCH 1/1] fix invalid free on syntax error --- src/parser_proc.c | 14 +++++++------- src/parser_proc_grammar.y | 2 +- src/parser_scan.c | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/parser_proc.c b/src/parser_proc.c index cb998f0..75c8106 100644 --- a/src/parser_proc.c +++ b/src/parser_proc.c @@ -7581,19 +7581,19 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser case 248: /* impl_type_token */ #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */ - {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} + {} #line 7586 "src/parser_proc.c" /* glr.c:851 */ break; case 249: /* impl_type_restricted_token */ #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */ - {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} + {} #line 7592 "src/parser_proc.c" /* glr.c:851 */ break; case 250: /* impl_type_extended_token */ #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */ - {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} + {} #line 7598 "src/parser_proc.c" /* glr.c:851 */ break; @@ -7653,7 +7653,7 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser case 260: /* let_func_token */ #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */ - {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} + {} #line 7658 "src/parser_proc.c" /* glr.c:851 */ break; @@ -7671,7 +7671,7 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser case 263: /* callback_rval */ #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */ - {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} + {} #line 7676 "src/parser_proc.c" /* glr.c:851 */ break; @@ -7725,7 +7725,7 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser case 272: /* set_func_token */ #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */ - {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} + {} #line 7730 "src/parser_proc.c" /* glr.c:851 */ break; @@ -7749,7 +7749,7 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct psi_parser case 276: /* assert_stmt_token */ #line 393 "src/parser_proc_grammar.y" /* glr.c:851 */ - {psi_token_free(&(*(struct psi_token **)(&(*yyvaluep))));} + {} #line 7754 "src/parser_proc.c" /* glr.c:851 */ break; diff --git a/src/parser_proc_grammar.y b/src/parser_proc_grammar.y index e0eca66..5c2e24d 100644 --- a/src/parser_proc_grammar.y +++ b/src/parser_proc_grammar.y @@ -390,7 +390,7 @@ struct psi_parser; %type impl_stmt %destructor {psi_impl_stmt_free(&$$);} impl_stmt %type impl_type_token impl_type_restricted_token impl_type_extended_token callback_rval let_func_token set_func_token assert_stmt_token -%destructor {psi_token_free(&$$);} impl_type_token impl_type_restricted_token impl_type_extended_token callback_rval let_func_token set_func_token assert_stmt_token +%destructor {} impl_type_token impl_type_restricted_token impl_type_extended_token callback_rval let_func_token set_func_token assert_stmt_token %type impl_args impl_stmts let_exps let_func_exps callback_arg_list callback_args set_exps set_func_exps free_exps %destructor {psi_plist_free($$);} impl_args impl_stmts let_exps let_func_exps callback_arg_list callback_args set_exps set_func_exps free_exps diff --git a/src/parser_scan.c b/src/parser_scan.c index 9d52d10..8ff3b11 100644 --- a/src/parser_scan.c +++ b/src/parser_scan.c @@ -1,4 +1,4 @@ -/* Generated by re2c 1.1.1 on Fri Dec 7 08:54:40 2018 */ +/* Generated by re2c 1.1.1 on Fri Dec 7 11:06:28 2018 */ #line 1 "src/parser_scan.re" /******************************************************************************* Copyright (c) 2016, Michael Wallner . -- 2.30.2