From b08da7374af338633a158141a27ec8b0f12590c8 Mon Sep 17 00:00:00 2001 From: jlaliMohamed <88040494+jlaliMohamed@users.noreply.github.com> Date: Mon, 27 Oct 2025 14:30:54 +0100 Subject: [PATCH] Notify spies only after validate the data This change ensures that spies are only notified when the received data is valid, preventing crashes or unexpected behavior caused by malformed or invalid input. --- src/rpc/RpcBase.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/rpc/RpcBase.cpp b/src/rpc/RpcBase.cpp index b49d5ec8..f3047957 100644 --- a/src/rpc/RpcBase.cpp +++ b/src/rpc/RpcBase.cpp @@ -297,10 +297,6 @@ void RpcBase::processReceivedData(const void* data, size_t size) { // Decode received data std::string received_data(reinterpret_cast(data), size); - for (ISpy* spy : m_spies) - { - spy->rcpMessageReceived(received_data); - } // RPC frame must be a JSON array bool valid = false; @@ -315,6 +311,10 @@ void RpcBase::processReceivedData(const void* data, size_t size) } if (valid && rpc_frame.IsArray() && (rpc_frame.Size() >= 3)) { + for (ISpy* spy : m_spies) + { + spy->rcpMessageReceived(received_data); + } // Extract message type const rapidjson::Value& msg_type_value = rpc_frame[0]; if (msg_type_value.IsUint())