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/backendsCommon/test/layerTests/ReverseV2TestImpl.cpp b/src/backends/backendsCommon/test/layerTests/ReverseV2TestImpl.cpp
index 3cfd614..f277403 100644
--- a/src/backends/backendsCommon/test/layerTests/ReverseV2TestImpl.cpp
+++ b/src/backends/backendsCommon/test/layerTests/ReverseV2TestImpl.cpp
@@ -63,13 +63,22 @@
         axisHandle->Allocate();
         outputHandle->Allocate();
 
-        CopyDataToITensorHandle(inputHandle.get(), input.data());
-        CopyDataToITensorHandle(axisHandle.get(), axis.data());
+        if (input.data() != nullptr)
+        {
+            CopyDataToITensorHandle(inputHandle.get(), input.data());
+        }
+        if (axis.data() != nullptr)
+        {
+            CopyDataToITensorHandle(axisHandle.get(), axis.data());
+        }
 
         workload->PostAllocationConfigure();
         ExecuteWorkload(*workload, memoryManager);
 
-        CopyDataFromITensorHandle(outputActual.data(), outputHandle.get());
+        if (outputActual.data() != nullptr)
+        {
+            CopyDataFromITensorHandle(outputActual.data(), outputHandle.get());
+        }
 
         return LayerTestResult<T, NumDims>(outputActual,
                                            outputExpected,
@@ -98,7 +107,7 @@
         3, 4
     }, qScale, qOffset);
 
-    std::vector<int> axis = armnnUtils::QuantizedVector<int>({}, qScale, qOffset);
+    std::vector<int> axis = armnnUtils::QuantizedVector<int>({1, 1}, qScale, qOffset);
 
     std::vector<T> outputExpected = armnnUtils::QuantizedVector<T>({
         1, 2,