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 --- profiling/common/src/SwTrace.cpp | 5 ++++- profiling/server/src/basePipeServer/BasePipeServer.cpp | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'profiling') diff --git a/profiling/common/src/SwTrace.cpp b/profiling/common/src/SwTrace.cpp index 5860d8cf06..c25baadfec 100644 --- a/profiling/common/src/SwTrace.cpp +++ b/profiling/common/src/SwTrace.cpp @@ -33,7 +33,10 @@ SwTraceMessage ReadSwTraceMessage(const unsigned char* packetBuffer, unsigned int& offset, const unsigned int& packetLength) { - ARM_PIPE_ASSERT(packetBuffer); + if (packetBuffer == nullptr) + { + throw ProfilingException("SwTrace.cpp: Attempting to read a null buffer"); + } unsigned int uint32_t_size = sizeof(uint32_t); diff --git a/profiling/server/src/basePipeServer/BasePipeServer.cpp b/profiling/server/src/basePipeServer/BasePipeServer.cpp index 81f58a5ee9..96e8e24a2c 100644 --- a/profiling/server/src/basePipeServer/BasePipeServer.cpp +++ b/profiling/server/src/basePipeServer/BasePipeServer.cpp @@ -207,6 +207,12 @@ bool BasePipeServer::SendPacket(uint32_t packetFamily, uint32_t packetId, const // And the rest of the data if there is any. if (dataLength > 0) { + if (data == nullptr) + { + throw ProfilingException( + "basePipeServer: SendPacket: Attempting to send a non-zero length data packet with a null data pointer" + ); + } memcpy((packet.data() + 8), data, dataLength); } EchoPacket(PacketDirection::Sending, packet.data(), packet.size()); -- cgit v1.2.1