diff options
author | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2016-01-16 12:30:02 +0100 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2016-01-22 19:36:37 +0000 |
commit | e63fd927f9556035439cd3cb24221e015ae7a295 (patch) | |
tree | 76f2155e70d0f26a3b020fa102dfe25c833baeab /tools | |
parent | 3343729457e3cb4b02b16e7cc7265d26a928a429 (diff) |
lemon (tools): Fix Dereference of null pointer found by Clang analyzer
Change-Id: Ica08d9372fbe3809eb078e0285cba2a49cee6b8d
Reviewed-on: https://code.wireshark.org/review/13331
Reviewed-by: Dario Lombardo <lomato@gmail.com>
Petri-Dish: Dario Lombardo <lomato@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/lemon/lemon.c | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/tools/lemon/lemon.c b/tools/lemon/lemon.c index a5030d68dc..d9480ee1f3 100644 --- a/tools/lemon/lemon.c +++ b/tools/lemon/lemon.c @@ -3185,30 +3185,33 @@ void ReportOutput(struct lemon *lemp) if( fp==0 ) return; for(i=0; i<lemp->nxstate; i++){ stp = lemp->sorted[i]; - fprintf(fp,"State %d:\n",stp->statenum); - if( lemp->basisflag ) cfp=stp->bp; - else cfp=stp->cfp; - while( cfp ){ - char buf[20]; - if( cfp->dot==cfp->rp->nrhs ){ - lemon_sprintf(buf,"(%d)",cfp->rp->index); - fprintf(fp," %5s ",buf); - }else{ - fprintf(fp," "); - } - ConfigPrint(fp,cfp); - fprintf(fp,"\n"); + if(stp){ + fprintf(fp,"State %d:\n",stp->statenum); + if( lemp->basisflag ) cfp=stp->bp; + else cfp=stp->cfp; + while( cfp ){ + char buf[20]; + if( cfp->dot==cfp->rp->nrhs ){ + lemon_sprintf(buf,"(%d)",cfp->rp->index); + fprintf(fp," %5s ",buf); + }else{ + fprintf(fp," "); + } + ConfigPrint(fp,cfp); + fprintf(fp,"\n"); #if 0 - SetPrint(fp,cfp->fws,lemp); - PlinkPrint(fp,cfp->fplp,"To "); - PlinkPrint(fp,cfp->bplp,"From"); + SetPrint(fp,cfp->fws,lemp); + PlinkPrint(fp,cfp->fplp,"To "); + PlinkPrint(fp,cfp->bplp,"From"); #endif - if( lemp->basisflag ) cfp=cfp->bp; - else cfp=cfp->next; - } - fprintf(fp,"\n"); - for(ap=stp->ap; ap; ap=ap->next){ - if( PrintAction(ap,fp,30) ) fprintf(fp,"\n"); + if( lemp->basisflag ) cfp=cfp->bp; + else cfp=cfp->next; + + } + fprintf(fp,"\n"); + for(ap=stp->ap; ap; ap=ap->next){ + if( PrintAction(ap,fp,30) ) fprintf(fp,"\n"); + } } fprintf(fp,"\n"); } |