fix invalid free on syntax error
authorMichael Wallner <mike@php.net>
Fri, 7 Dec 2018 11:50:58 +0000 (12:50 +0100)
committerMichael Wallner <mike@php.net>
Fri, 7 Dec 2018 11:50:58 +0000 (12:50 +0100)
src/parser_proc.c
src/parser_proc_grammar.y
src/parser_scan.c

index cb998f0..75c8106 100644 (file)
@@ -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;
 
index e0eca66..5c2e24d 100644 (file)
@@ -390,7 +390,7 @@ struct psi_parser;
 %type          <struct psi_token **>                           impl_stmt
 %destructor    {psi_impl_stmt_free(&$$);}                      impl_stmt
 %type          <struct psi_token *>                            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          <struct psi_plist *>                            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
 
index 9d52d10..8ff3b11 100644 (file)
@@ -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 <mike@php.net>.