From 6a1d506cb0619c6bcf8685ada56ddf4507c2f2d4 Mon Sep 17 00:00:00 2001 From: David Monahan Date: Tue, 29 Aug 2023 09:10:50 +0100 Subject: 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 Change-Id: I9529acd966466ba281f88918be2ec372a756e183 --- .../ObjectDetection/include/delegate/ArmnnNetworkExecutor.hpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'samples') diff --git a/samples/ObjectDetection/include/delegate/ArmnnNetworkExecutor.hpp b/samples/ObjectDetection/include/delegate/ArmnnNetworkExecutor.hpp index 557ec8a8ac..9c8583e8ea 100644 --- a/samples/ObjectDetection/include/delegate/ArmnnNetworkExecutor.hpp +++ b/samples/ObjectDetection/include/delegate/ArmnnNetworkExecutor.hpp @@ -151,18 +151,24 @@ ArmnnNetworkExecutor::ArmnnNetworkExecutor(std::string& modelPath, } template -void ArmnnNetworkExecutor::PrepareTensors(const void *inputData, const size_t dataBytes) +void ArmnnNetworkExecutor::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); } -- cgit v1.2.1