diff options
-rw-r--r-- | src/analysis/expression.cpp | 6 | ||||
-rw-r--r-- | src/analysis/statement.cpp | 8 |
2 files changed, 9 insertions, 5 deletions
diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp index a46023d..27b6718 100644 --- a/src/analysis/expression.cpp +++ b/src/analysis/expression.cpp @@ -44,7 +44,7 @@ void analyseModifyExpr(ModifyExprNode *node, const WalkItem &wi, WalkItem &wo) return; Node *arg = node->args[0]; - if (arg->nodeType == INDIRECT_REF) + if (arg && arg->nodeType == INDIRECT_REF) { IndirectRefNode *refNode = static_cast<IndirectRefNode*>(arg); // need atleast one arg for check @@ -69,7 +69,7 @@ void analysePointerPlusExpr(PointerPlusExprNode *node, const WalkItem &wi, WalkI return; Node *arg = node->args[0]; - if (arg->nodeType == PARM_DECL) + if (arg && arg->nodeType == PARM_DECL) { if (wi.checkNullVars.find(arg->label) != wi.checkNullVars.end()) { @@ -86,7 +86,7 @@ void analyseAddrExpr(AddrExprNode *node, const WalkItem &wi, WalkItem &wo) return; Node *arg = node->args[0]; - if (arg->nodeType == PARM_DECL) + if (arg && arg->nodeType == PARM_DECL) { if (wi.checkNullVars.find(arg->label) != wi.checkNullVars.end()) { diff --git a/src/analysis/statement.cpp b/src/analysis/statement.cpp index 4d948d3..b3ca49b 100644 --- a/src/analysis/statement.cpp +++ b/src/analysis/statement.cpp @@ -58,7 +58,9 @@ void analyseIfStmt(IfStmtNode *node, const WalkItem &wi, WalkItem &wo) // INTEGER_CST? Node *node2 = eq->args[1]; // if (var == 0) - if (node1->nodeType == PARM_DECL && + if (node1 && + node2 && + node1->nodeType == PARM_DECL && node2->nodeType == INTEGER_CST && wi.checkNullVars.find(node1->label) != wi.checkNullVars.end() && node2->label == "0") @@ -97,7 +99,9 @@ void analyseIfStmt(IfStmtNode *node, const WalkItem &wi, WalkItem &wo) // INTEGER_CST? Node *node2 = ne->args[1]; // if (var != 0) - if (node1->nodeType == PARM_DECL && + if (node1 && + node2 && + node1->nodeType == PARM_DECL && node2->nodeType == INTEGER_CST && wi.checkNullVars.find(node1->label) != wi.checkNullVars.end() && node2->label == "0") |