Browse Source

Better checks for incoming data

Ivan Savenko 1 year ago
parent
commit
bc9e961252
1 changed files with 7 additions and 1 deletions
  1. 7 1
      lib/serializer/Connection.cpp

+ 7 - 1
lib/serializer/Connection.cpp

@@ -94,7 +94,13 @@ CPack * CConnection::retrievePack(const std::vector<std::byte> & 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;
 }