From bc9e96125251b5c788571026ad6e0714e352b453 Mon Sep 17 00:00:00 2001 From: Ivan Savenko Date: Sun, 25 Feb 2024 20:05:52 +0200 Subject: [PATCH] Better checks for incoming data --- lib/serializer/Connection.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/serializer/Connection.cpp b/lib/serializer/Connection.cpp index d8521f0a1..f76b77262 100644 --- a/lib/serializer/Connection.cpp +++ b/lib/serializer/Connection.cpp @@ -94,7 +94,13 @@ CPack * CConnection::retrievePack(const std::vector & data) *deserializer & result; - logNetwork->trace("Received CPack of type %s", (result ? typeid(*result).name() : "nullptr")); + if (result == nullptr) + throw std::runtime_error("Failed to retrieve pack!"); + + if (packReader->position != data.size()) + throw std::runtime_error("Failed to retrieve pack! Not all data has been read!"); + + logNetwork->trace("Received CPack of type %s", typeid(*result).name()); return result; }