aboutsummaryrefslogtreecommitdiffstats
path: root/tools/lemon
diff options
context:
space:
mode:
authorChris Maynard <Christopher.Maynard@GTECH.COM>2011-04-01 16:55:59 +0000
committerChris Maynard <Christopher.Maynard@GTECH.COM>2011-04-01 16:55:59 +0000
commitc236db55fe6da4a6824d02d8eda55ba7ad7f6574 (patch)
tree7cb5cc86b5588fdd9cec476478d14e7438ee5df8 /tools/lemon
parent2db46ad8d4a9fb3e83828a92adea7f6d6e439c61 (diff)
Don't use pParser->yyidx as an index into pParser->yystack[] until after it is
verified that it is non-negative. Should resolve CID 619. svn path=/trunk/; revision=36431
Diffstat (limited to 'tools/lemon')
-rw-r--r--tools/lemon/lempar.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/tools/lemon/lempar.c b/tools/lemon/lempar.c
index 6ac188097c..72e5f6018e 100644
--- a/tools/lemon/lempar.c
+++ b/tools/lemon/lempar.c
@@ -327,11 +327,12 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){
*/
static int yy_pop_parser_stack(yyParser *pParser){
YYCODETYPE yymajor;
- yyStackEntry *yytos = &pParser->yystack[pParser->yyidx];
+ yyStackEntry *yytos;
if( pParser->yyidx<0 ) return 0;
+ yytos = &pParser->yystack[pParser->yyidx];
#ifndef NDEBUG
- if( yyTraceFILE && pParser->yyidx>=0 ){
+ if( yyTraceFILE ){
fprintf(yyTraceFILE,"%sPopping %s\n",
yyTracePrompt,
yyTokenName[yytos->major]);