IVGCVSW-7901 Fix unsafe Usages of Memcpy in Armnn

* Updated usages of Memcpy to use proper checks for null instead of asserts
* Added error checking in places where none existed

Signed-off-by: David Monahan <david.monahan@arm.com>
Change-Id: I9529acd966466ba281f88918be2ec372a756e183
diff --git a/samples/ObjectDetection/include/delegate/ArmnnNetworkExecutor.hpp b/samples/ObjectDetection/include/delegate/ArmnnNetworkExecutor.hpp
index 557ec8a..9c8583e 100644
--- a/samples/ObjectDetection/include/delegate/ArmnnNetworkExecutor.hpp
+++ b/samples/ObjectDetection/include/delegate/ArmnnNetworkExecutor.hpp
@@ -151,18 +151,24 @@
 }
 
 template<typename Tout>
-void ArmnnNetworkExecutor<Tout>::PrepareTensors(const void *inputData, const size_t dataBytes)
+void ArmnnNetworkExecutor<Tout>::PrepareTensors(const void* inputData, const size_t dataBytes)
 {
     size_t inputTensorSize = m_interpreter->input_tensor(0)->bytes;
     auto * inputTensorPtr = m_interpreter->input_tensor(0)->data.raw;
     assert(inputTensorSize >= dataBytes);
+    if (inputData == nullptr)
+    {
+        const std::string errorMessage{"ArmnnNetworkExecutor: input data pointer is null"};
+        ARMNN_LOG(error) << errorMessage;
+        throw armnn::Exception(errorMessage);
+    }
     if (inputTensorPtr != nullptr)
     {
        memcpy(inputTensorPtr, inputData, inputTensorSize);
     }
     else
     {
-        const std::string errorMessage{"ArmnnNetworkExecutor: input tensor is null"};
+        const std::string errorMessage{"ArmnnNetworkExecutor: input tensor pointer is null"};
         ARMNN_LOG(error) << errorMessage;
         throw armnn::Exception(errorMessage);
     }