aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorAlexis La Goutte <alexis.lagoutte@gmail.com>2016-01-16 12:30:02 +0100
committerMichael Mann <mmann78@netscape.net>2016-01-22 19:36:37 +0000
commite63fd927f9556035439cd3cb24221e015ae7a295 (patch)
tree76f2155e70d0f26a3b020fa102dfe25c833baeab /tools
parent3343729457e3cb4b02b16e7cc7265d26a928a429 (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.c47
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");
}