auto_zoom: check nullptr correctly 56/318756/1 accepted/tizen_9.0_unified accepted/tizen_unified_toolchain accepted/tizen_unified_x_asan tizen_9.0 accepted/tizen/9.0/unified/20241030.235553 accepted/tizen/unified/20241015.153106 accepted/tizen/unified/toolchain/20241022.122343 accepted/tizen/unified/toolchain/20241022.122829 accepted/tizen/unified/x/20241016.023851 accepted/tizen/unified/x/asan/20241022.113358 tizen_9.0_m2_release
authorInki Dae <inki.dae@samsung.com>
Tue, 8 Oct 2024 02:36:20 +0000 (11:36 +0900)
committerInki Dae <inki.dae@samsung.com>
Tue, 8 Oct 2024 02:36:20 +0000 (11:36 +0900)
Check nullptr correctly for each node.

This patch will fix a coverity issue, CID-1789481.
Ps. I will post other patch later, which will hide relevant exception code
into task manger.

Change-Id: I077269a73b4f03b5fbe66541e9705d5a92013085
Signed-off-by: Inki Dae <inki.dae@samsung.com>
services/auto_zoom/src/AutoZoom.cpp

index 73731752e372a160c882c5b2c18d9cbf75bae124..729c767b25f331f2364a43e8e28c2e16d3a81b8f 100644 (file)
@@ -114,13 +114,22 @@ AutoZoom::AutoZoom()
        _taskManager = make_unique<TaskManager>();
 
        auto face_detection_node = _taskManager->requestNewNode(NodeType::INFERENCE, "face_detection");
+       if (dynamic_cast<InferenceNode *>(face_detection_node) == nullptr)
+               throw InvalidOperation("Invalid inference node.");
+
        dynamic_cast<InferenceNode *>(face_detection_node)->setInferenceTask(factory->createFaceDetection());
 
        auto bridge_node = _taskManager->requestNewNode(NodeType::BRIDGE, "bridge_node");
-       bridge_node->addDependency(face_detection_node);
+       if (dynamic_cast<BridgeNode *>(bridge_node) == nullptr)
+               throw InvalidOperation("Invalid bridge node.");
+
        dynamic_cast<BridgeNode *>(bridge_node)->setCb(BridgeNodeCallback);
+       bridge_node->addDependency(face_detection_node);
 
        auto face_recognition_node = _taskManager->requestNewNode(NodeType::INFERENCE, "face_recognition_node");
+       if (dynamic_cast<InferenceNode *>(face_recognition_node) == nullptr)
+               throw InvalidOperation("Invalid inference node.");
+
        dynamic_cast<InferenceNode *>(face_recognition_node)->setInferenceTask(factory->createFaceRecognition());
        face_recognition_node->addDependency(bridge_node);