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/src/backends/tosaReference/TosaRefTensorHandle.cpp b/src/backends/tosaReference/TosaRefTensorHandle.cpp
index 38d02f1..aaffc8a 100644
--- a/src/backends/tosaReference/TosaRefTensorHandle.cpp
+++ b/src/backends/tosaReference/TosaRefTensorHandle.cpp
@@ -100,16 +100,30 @@
void TosaRefTensorHandle::CopyOutTo(void* dest) const
{
- const void *src = GetPointer();
- ARMNN_ASSERT(src);
- memcpy(dest, src, m_TensorInfo.GetNumBytes());
+ const void* src = GetPointer();
+ if (src == nullptr)
+ {
+ throw NullPointerException("TosaRefTensorHandle::CopyOutTo called with a null src pointer");
+ }
+ if (dest == nullptr)
+ {
+ throw NullPointerException("TosaRefTensorHandle::CopyOutTo called with a null dest pointer");
+ }
+ memcpy(dest, src, GetTensorInfo().GetNumBytes());
}
void TosaRefTensorHandle::CopyInFrom(const void* src)
{
- void *dest = GetPointer();
- ARMNN_ASSERT(dest);
- memcpy(dest, src, m_TensorInfo.GetNumBytes());
+ void* dest = GetPointer();
+ if (dest == nullptr)
+ {
+ throw NullPointerException("TosaRefTensorHandle::CopyInFrom called with a null dest pointer");
+ }
+ if (src == nullptr)
+ {
+ throw NullPointerException("TosaRefTensorHandle::CopyInFrom called with a null src pointer");
+ }
+ memcpy(dest, src, GetTensorInfo().GetNumBytes());
}
bool TosaRefTensorHandle::Import(void* memory, MemorySource source)