From f5228370c596f17e9b176d0959423c7a136b5b67 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 8 Dec 2005 06:52:43 +0000 Subject: [PATCH] * tests/glr-regression.at (Improper handling of embedded actions and dollar(-N) in GLR parsers): Close memory leak reported by twlevo. --- ChangeLog | 6 ++++++ tests/glr-regression.at | 10 ++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4d4a920c..474cc80c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-12-07 Paul Eggert + + * tests/glr-regression.at + (Improper handling of embedded actions and dollar(-N) in GLR parsers): + Close memory leak reported by twlevo. + 2005-12-06 "Joel E. Denny" * data/glr.c (yyprocessOneStack, yyparse): Synchronize the shift for diff --git a/tests/glr-regression.at b/tests/glr-regression.at index e3bdd26b..abaec703 100644 --- a/tests/glr-regression.at +++ b/tests/glr-regression.at @@ -120,7 +120,7 @@ AT_DATA_GRAMMAR([glr-regr2a.y], /* Reported by S. Eken */ %{ - #define YYSTYPE char const * + #define YYSTYPE char * #include #include @@ -138,9 +138,11 @@ command: 's' var 't' { printf ("Variable: '%s'\n", $2); } 'v' 'x' 'q' + { free ($2); } | 's' var_list 't' 'e' - { printf ("Varlist: '%s'\n", $2); } + { printf ("Varlist: '%s'\n", $2); free ($2); } | 's' var 't' var_printer 'x' + { free ($2); } ; var: @@ -153,10 +155,10 @@ var_list: { $$ = $1; } | var ',' var_list { - char *s = (char *) malloc (strlen ($1) + 1 + strlen ($3) + 1); - strcpy (s, $1); + char *s = (char *) realloc ($1, strlen ($1) + 1 + strlen ($3) + 1); strcat (s, ","); strcat (s, $3); + free ($3); $$ = s; } ; -- 2.47.2