summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/analysis/expression.cpp6
-rw-r--r--src/analysis/statement.cpp8
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")