task_manager: fix svace issue 72/317472/1
authorInki Dae <inki.dae@samsung.com>
Wed, 11 Sep 2024 00:10:16 +0000 (09:10 +0900)
committerInki Dae <inki.dae@samsung.com>
Wed, 11 Sep 2024 00:36:19 +0000 (09:36 +0900)
Fix svace issue - WGID 245644, 245645 and 245646 - DEREF_OF_NULL_DYN_CAST.

Any dependency from getDependencies() could be NULL so if the dependency
is NULL then skip it.

Change-Id: I9c3fe1f4d488b3b9c538d7b505987bb2b2f157aa
Signed-off-by: Inki Dae <inki.dae@samsung.com>
services/task_manager/include/BridgeNode.h
services/task_manager/include/EndpointNode.h
services/task_manager/src/InferenceNode.cpp

index f877f301440a096a1ed600328e3c7f4c32c02011..bfcb83337213fe323e3a9dd54aa28909f8e77c4b 100644 (file)
@@ -48,7 +48,9 @@ public:
                _status = NodeStatus::INVALID;
                // If at least one dependency is valid, bridge node is valid.
                for (auto &dep : this->getDependencies()) {
-                       if (dynamic_cast<TaskNode *>(dep)->getStatus() == NodeStatus::VALID) {
+                       TaskNode *taskNode = dynamic_cast<TaskNode *>(dep);
+
+                       if (taskNode && taskNode->getStatus() == NodeStatus::VALID) {
                                _status = NodeStatus::VALID;
                                break;
                        }
index 956ae942af35b33c9e640ff186814edfd9da3cdb..df651bbd785a6be09e83c1752c5d04753ecc18e9 100644 (file)
@@ -45,7 +45,9 @@ public:
 
                // If at least one dependency is valid, endpoint node is valid.
                for (auto &dep : this->getDependencies()) {
-                       if (dynamic_cast<TaskNode *>(dep)->getStatus() == NodeStatus::VALID) {
+                       TaskNode *taskNode = dynamic_cast<TaskNode *>(dep);
+
+                       if (taskNode && taskNode->getStatus() == NodeStatus::VALID) {
                                _status = NodeStatus::VALID;
                                break;
                        }
index c01d74163721ce4f12e53830412a301e9c6ad655..e5dc786b4f287addb414b65ecdb9abf4881fdb90 100644 (file)
@@ -47,7 +47,9 @@ void InferenceNode::invoke()
 
        // Note: Inference node can have at max one dependency.
        for (auto &dep : this->getDependencies()) {
-               if (dynamic_cast<CallbackNode *>(dep)->getStatus() == NodeStatus::INVALID) {
+               CallbackNode *callbackNode = dynamic_cast<CallbackNode *>(dep);
+
+               if (callbackNode && callbackNode->getStatus() == NodeStatus::INVALID) {
                        _status = NodeStatus::INVALID;
                        return;
                }