e5777.c

おかしいNULLチェック

/* A:e5777: この "xp" のNULLチェックは間違っていませんか?(NULLの時に参照を行います) */

修正前 if(xp != NULL || xp->x) /* NG xp == NULLの場合にxp->xを見に行く */ { } 修正後 if(xp != NULL && xp->x) { }
解説 左辺でNULLチェックを行ってから右辺で中身を使うケースで、 ||と&&を間違えたり==と!=を間違えた結果NULLの時に参照してしまっている。