瀏覽代碼

Better checks for incoming data

Ivan Savenko 1 年之前
父節點
當前提交
bc9e961252
共有 1 個文件被更改,包括 7 次插入1 次删除
  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;
 	*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;
 	return result;
 }
 }