From 98e190a89dcac8fef0b83dc8a387d638e279411b Mon Sep 17 00:00:00 2001 From: Segfault <5221072+Segfaultd@users.noreply.github.com> Date: Thu, 15 Oct 2026 13:33:18 +0200 Subject: [PATCH] Vendors: Pin MafiaNet 0.23.0 0.23.0 makes a Shutdown() from inside receive dispatch safe: it no longer frees the packet being dispatched or the FileListTransfer receiver whose callback is running, which is the crash a client hit when it refused a join from its asset download callback (#315). 0.23.0 also renames every header to snake_case, so each MafiaNet include moves to its new name. The wire format is unchanged (RAKNET_PROTOCOL_VERSION 7). --- cmake/MafiaNetPin.cmake | 12 +++++------ .../src/integrations/client/instance.h | 2 +- .../shared/rpc/emit_script_event.h | 2 +- code/framework/src/networking/connection.h | 2 +- .../src/networking/network_client.cpp | 2 +- .../framework/src/networking/network_client.h | 2 +- code/framework/src/networking/network_peer.h | 20 +++++++++---------- .../src/networking/network_server.cpp | 4 ++-- .../framework/src/networking/network_server.h | 4 ++-- .../src/networking/replication/delegation.cpp | 2 +- .../src/networking/replication/delegation.h | 2 +- .../networking/replication/interest_grid.cpp | 2 +- .../networking/replication/interest_grid.h | 4 ++-- .../networking/replication/network_entity.cpp | 2 +- .../networking/replication/network_entity.h | 6 +++--- .../replication/replication_connection.cpp | 2 +- .../replication/replication_connection.h | 2 +- .../replication/replication_manager.h | 8 ++++---- .../src/networking/replication/state_bag.h | 2 +- .../networking/replication/transform_batch.h | 4 ++-- .../src/networking/rpc/client_identity.h | 2 +- code/framework/src/networking/rpc/rpc.h | 2 +- .../src/networking/rpc/state_bag_sync.h | 2 +- .../framework/src/scripting/builtins/chat.cpp | 2 +- code/framework/src/utils/snapshot_buffer.h | 2 +- .../framework/src/voice/client/voice_client.h | 2 +- .../framework/src/voice/server/voice_router.h | 2 +- .../src/voice/server/voice_server.cpp | 2 +- .../framework/src/voice/server/voice_server.h | 2 +- code/tests/modules/asset_transfer_ut.h | 2 +- code/tests/modules/delegation_ut.h | 2 +- code/tests/modules/nametag_ut.h | 4 ++-- code/tests/modules/network_packets_ut.h | 2 +- code/tests/modules/replication_authority_ut.h | 4 ++-- code/tests/modules/replication_rate_ut.h | 4 ++-- code/tests/modules/rpc_identifier_ut.h | 4 ++-- code/tests/modules/state_bag_ut.h | 2 +- code/tests/modules/streamed_assets_ut.h | 2 +- code/tests/modules/voice_positions_ut.h | 4 ++-- 39 files changed, 67 insertions(+), 67 deletions(-) diff --git a/cmake/MafiaNetPin.cmake b/cmake/MafiaNetPin.cmake index f0ce6facd..f8906c91d 100644 --- a/cmake/MafiaNetPin.cmake +++ b/cmake/MafiaNetPin.cmake @@ -28,10 +28,10 @@ # tree, so bumping the pin here and reconfiguring incrementally would silently # keep the old release. This file is the single source of truth, and there is no # reason to let -D override the wire format of the protocol. -set(MAFIANET_PIN_VERSION "0.22.1") # FileListTransfer reference push window; DirectoryDeltaTransfer compares AddFile uploads by hash and writes streamed downloads as they arrive (RAKNET_PROTOCOL_VERSION still 7, wire-compatible) +set(MAFIANET_PIN_VERSION "0.23.0") # A Shutdown() from inside receive dispatch no longer frees the packet or transfer receiver in use; snake_case header names (RAKNET_PROTOCOL_VERSION still 7, wire-compatible) -set(MAFIANET_PIN_SHA256_linux-x86_64 "fc554afe031a4c4b3b064d0beb96aa40c42b3b92337df87fcf0cbeb0f338626d") -set(MAFIANET_PIN_SHA256_macos-arm64 "a36e7ff318e117c34b84822ef54f9d8c3cdcf971945cb7ebe34582ca2636a35b") -set(MAFIANET_PIN_SHA256_macos-x86_64 "234cfca4c6bd4d88d2fa0a6f97dbd3ecadde6ac6eee93ced816fc9af06cef8a1") -set(MAFIANET_PIN_SHA256_windows-x64 "14c6317d6ddb2299de8fdff3c71373bb1c25fbab2b491187d28db4e8a7356e4e") -set(MAFIANET_PIN_SHA256_windows-x86 "b39568dabbf241d291a0f8e1ef2bde4f156edd6bad9f6cda282d4fed571e0c77") +set(MAFIANET_PIN_SHA256_linux-x86_64 "b81fcd58707273b25e6e6ac3ce927f3b51ff6d53742bc042aac22e59a71fb953") +set(MAFIANET_PIN_SHA256_macos-arm64 "0723adfa047ffd8cf89ce5c0b1ddb1ffc088313bbbf8f25b95a321bbd0301a2b") +set(MAFIANET_PIN_SHA256_macos-x86_64 "cbb3ccc389a2a8444bad223db2bb0fe8d7c4818b48b3b40e56f744200c584ff5") +set(MAFIANET_PIN_SHA256_windows-x64 "baefa6694fdd2985940f307256b1410ccbd3a7dbd21f12ebc809c80b5d813e6c") +set(MAFIANET_PIN_SHA256_windows-x86 "75f70eafec2245994aa3130a89727f6241732831ce14f6b38dcd4edb33416c3e") diff --git a/code/framework/src/integrations/client/instance.h b/code/framework/src/integrations/client/instance.h index 1c155956f..253e25318 100644 --- a/code/framework/src/integrations/client/instance.h +++ b/code/framework/src/integrations/client/instance.h @@ -27,7 +27,7 @@ #include "networking/rpc/server_resources.h" #include "integrations/client/ui/chat_box.h" #include "voice/client/voice_client.h" -#include +#include #include #include diff --git a/code/framework/src/integrations/shared/rpc/emit_script_event.h b/code/framework/src/integrations/shared/rpc/emit_script_event.h index e7c275431..91768b138 100644 --- a/code/framework/src/integrations/shared/rpc/emit_script_event.h +++ b/code/framework/src/integrations/shared/rpc/emit_script_event.h @@ -10,7 +10,7 @@ #include -#include +#include #include #include diff --git a/code/framework/src/networking/connection.h b/code/framework/src/networking/connection.h index a43e23505..f13684025 100644 --- a/code/framework/src/networking/connection.h +++ b/code/framework/src/networking/connection.h @@ -8,7 +8,7 @@ #pragma once -#include +#include #include #include #include diff --git a/code/framework/src/networking/network_client.cpp b/code/framework/src/networking/network_client.cpp index 903e9305e..a1d997672 100644 --- a/code/framework/src/networking/network_client.cpp +++ b/code/framework/src/networking/network_client.cpp @@ -12,7 +12,7 @@ #include -#include +#include #include #include diff --git a/code/framework/src/networking/network_client.h b/code/framework/src/networking/network_client.h index 3e4021420..9f3deef4f 100644 --- a/code/framework/src/networking/network_client.h +++ b/code/framework/src/networking/network_client.h @@ -17,7 +17,7 @@ #include #include -#include +#include #include #include #include diff --git a/code/framework/src/networking/network_peer.h b/code/framework/src/networking/network_peer.h index f6a307523..8aca5099c 100644 --- a/code/framework/src/networking/network_peer.h +++ b/code/framework/src/networking/network_peer.h @@ -12,16 +12,16 @@ #include "connection.h" #include "rpc/rpc.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include diff --git a/code/framework/src/networking/network_server.cpp b/code/framework/src/networking/network_server.cpp index 5c84b8856..26ad7dc00 100644 --- a/code/framework/src/networking/network_server.cpp +++ b/code/framework/src/networking/network_server.cpp @@ -11,8 +11,8 @@ #include "channels.h" #include "replication/replication_manager.h" -#include -#include +#include +#include #include #include #include diff --git a/code/framework/src/networking/network_server.h b/code/framework/src/networking/network_server.h index 255d3f99e..dfaec06c2 100644 --- a/code/framework/src/networking/network_server.h +++ b/code/framework/src/networking/network_server.h @@ -19,9 +19,9 @@ #include #include -#include +#include #include -#include +#include #include #include #include diff --git a/code/framework/src/networking/replication/delegation.cpp b/code/framework/src/networking/replication/delegation.cpp index 8f3ac651c..b9eecc04b 100644 --- a/code/framework/src/networking/replication/delegation.cpp +++ b/code/framework/src/networking/replication/delegation.cpp @@ -12,7 +12,7 @@ #include -#include +#include #include diff --git a/code/framework/src/networking/replication/delegation.h b/code/framework/src/networking/replication/delegation.h index 891334b13..03528aa16 100644 --- a/code/framework/src/networking/replication/delegation.h +++ b/code/framework/src/networking/replication/delegation.h @@ -10,7 +10,7 @@ #include "network_entity.h" -#include +#include #include #include diff --git a/code/framework/src/networking/replication/interest_grid.cpp b/code/framework/src/networking/replication/interest_grid.cpp index 4f619e64e..4f3bf4a74 100644 --- a/code/framework/src/networking/replication/interest_grid.cpp +++ b/code/framework/src/networking/replication/interest_grid.cpp @@ -9,7 +9,7 @@ #include "interest_grid.h" #include -#include +#include #include #include diff --git a/code/framework/src/networking/replication/interest_grid.h b/code/framework/src/networking/replication/interest_grid.h index ca9b347f3..ed43b213d 100644 --- a/code/framework/src/networking/replication/interest_grid.h +++ b/code/framework/src/networking/replication/interest_grid.h @@ -10,8 +10,8 @@ #include "network_entity.h" -#include -#include +#include +#include #include diff --git a/code/framework/src/networking/replication/network_entity.cpp b/code/framework/src/networking/replication/network_entity.cpp index 71de08748..cb53b4150 100644 --- a/code/framework/src/networking/replication/network_entity.cpp +++ b/code/framework/src/networking/replication/network_entity.cpp @@ -11,7 +11,7 @@ #include "../channels.h" #include "replication_manager.h" -#include +#include #include #include diff --git a/code/framework/src/networking/replication/network_entity.h b/code/framework/src/networking/replication/network_entity.h index 068bfb57b..63dda9195 100644 --- a/code/framework/src/networking/replication/network_entity.h +++ b/code/framework/src/networking/replication/network_entity.h @@ -10,9 +10,9 @@ #include "state_bag.h" -#include -#include -#include +#include +#include +#include #include #include diff --git a/code/framework/src/networking/replication/replication_connection.cpp b/code/framework/src/networking/replication/replication_connection.cpp index bb0c3836e..31c259ec1 100644 --- a/code/framework/src/networking/replication/replication_connection.cpp +++ b/code/framework/src/networking/replication/replication_connection.cpp @@ -12,7 +12,7 @@ #include "network_entity.h" #include "replication_manager.h" -#include +#include #include #include diff --git a/code/framework/src/networking/replication/replication_connection.h b/code/framework/src/networking/replication/replication_connection.h index 51614c1b8..1cd6d5f31 100644 --- a/code/framework/src/networking/replication/replication_connection.h +++ b/code/framework/src/networking/replication/replication_connection.h @@ -11,7 +11,7 @@ #include "interest_refresh.h" #include "transform_batch.h" -#include +#include #include #include diff --git a/code/framework/src/networking/replication/replication_manager.h b/code/framework/src/networking/replication/replication_manager.h index 8b32bb4b4..b89be774e 100644 --- a/code/framework/src/networking/replication/replication_manager.h +++ b/code/framework/src/networking/replication/replication_manager.h @@ -13,10 +13,10 @@ #include "interest_grid.h" #include "network_entity.h" -#include -#include -#include -#include +#include +#include +#include +#include #include #include diff --git a/code/framework/src/networking/replication/state_bag.h b/code/framework/src/networking/replication/state_bag.h index c5e3b99a1..d6598bfaf 100644 --- a/code/framework/src/networking/replication/state_bag.h +++ b/code/framework/src/networking/replication/state_bag.h @@ -8,7 +8,7 @@ #pragma once -#include +#include #include #include diff --git a/code/framework/src/networking/replication/transform_batch.h b/code/framework/src/networking/replication/transform_batch.h index 4c6ef46e5..500301fab 100644 --- a/code/framework/src/networking/replication/transform_batch.h +++ b/code/framework/src/networking/replication/transform_batch.h @@ -9,8 +9,8 @@ #pragma once #include -#include -#include +#include +#include #include #include diff --git a/code/framework/src/networking/rpc/client_identity.h b/code/framework/src/networking/rpc/client_identity.h index 72eeb2f63..4de27b63b 100644 --- a/code/framework/src/networking/rpc/client_identity.h +++ b/code/framework/src/networking/rpc/client_identity.h @@ -13,7 +13,7 @@ // included -- and would land on ours while BitStream is still half-declared. #include "rpc.h" -#include +#include #include #include diff --git a/code/framework/src/networking/rpc/rpc.h b/code/framework/src/networking/rpc/rpc.h index 522a680cd..4bab1364f 100644 --- a/code/framework/src/networking/rpc/rpc.h +++ b/code/framework/src/networking/rpc/rpc.h @@ -10,7 +10,7 @@ #include "rpc_identifier.h" -#include +#include #include diff --git a/code/framework/src/networking/rpc/state_bag_sync.h b/code/framework/src/networking/rpc/state_bag_sync.h index 371b7940f..0c9863e5f 100644 --- a/code/framework/src/networking/rpc/state_bag_sync.h +++ b/code/framework/src/networking/rpc/state_bag_sync.h @@ -11,7 +11,7 @@ #include "../replication/state_bag.h" #include "rpc.h" -#include +#include #include #include diff --git a/code/framework/src/scripting/builtins/chat.cpp b/code/framework/src/scripting/builtins/chat.cpp index f5b072a12..14807082d 100644 --- a/code/framework/src/scripting/builtins/chat.cpp +++ b/code/framework/src/scripting/builtins/chat.cpp @@ -20,7 +20,7 @@ #include #include -#include +#include #include #include diff --git a/code/framework/src/utils/snapshot_buffer.h b/code/framework/src/utils/snapshot_buffer.h index f743a029a..b4ed716a3 100644 --- a/code/framework/src/utils/snapshot_buffer.h +++ b/code/framework/src/utils/snapshot_buffer.h @@ -10,7 +10,7 @@ #include #include -#include +#include #include namespace Framework::Utils { diff --git a/code/framework/src/voice/client/voice_client.h b/code/framework/src/voice/client/voice_client.h index 733bf26da..9361abaa3 100644 --- a/code/framework/src/voice/client/voice_client.h +++ b/code/framework/src/voice/client/voice_client.h @@ -18,7 +18,7 @@ #include "voice/voice_config.h" #include "voice_activity_gate.h" -#include +#include #include #include diff --git a/code/framework/src/voice/server/voice_router.h b/code/framework/src/voice/server/voice_router.h index 5dd4ea6cc..e91511072 100644 --- a/code/framework/src/voice/server/voice_router.h +++ b/code/framework/src/voice/server/voice_router.h @@ -11,7 +11,7 @@ #include "voice/voice_config.h" #include -#include +#include #include #include diff --git a/code/framework/src/voice/server/voice_server.cpp b/code/framework/src/voice/server/voice_server.cpp index caa8cf8cc..54cf94776 100644 --- a/code/framework/src/voice/server/voice_server.cpp +++ b/code/framework/src/voice/server/voice_server.cpp @@ -11,7 +11,7 @@ #include "voice/voice_config.h" #include -#include +#include #include #include #include diff --git a/code/framework/src/voice/server/voice_server.h b/code/framework/src/voice/server/voice_server.h index f047fccdc..d5ba2c50c 100644 --- a/code/framework/src/voice/server/voice_server.h +++ b/code/framework/src/voice/server/voice_server.h @@ -10,7 +10,7 @@ #include "voice_router.h" -#include +#include #include #include diff --git a/code/tests/modules/asset_transfer_ut.h b/code/tests/modules/asset_transfer_ut.h index b784d3f5c..8b84a2837 100644 --- a/code/tests/modules/asset_transfer_ut.h +++ b/code/tests/modules/asset_transfer_ut.h @@ -10,7 +10,7 @@ #include "networking/network_client.h" -#include +#include namespace AssetTransferTest { // Counts how often the transfer lets go of it. diff --git a/code/tests/modules/delegation_ut.h b/code/tests/modules/delegation_ut.h index 287adc2d2..83120729d 100644 --- a/code/tests/modules/delegation_ut.h +++ b/code/tests/modules/delegation_ut.h @@ -11,7 +11,7 @@ #include "networking/replication/delegation.h" #include -#include +#include #include #include diff --git a/code/tests/modules/nametag_ut.h b/code/tests/modules/nametag_ut.h index 391edc570..c86fc06c0 100644 --- a/code/tests/modules/nametag_ut.h +++ b/code/tests/modules/nametag_ut.h @@ -15,8 +15,8 @@ #include "networking/replication/replication_manager.h" #include "scripting/builtins/player.h" -#include -#include +#include +#include #include #include diff --git a/code/tests/modules/network_packets_ut.h b/code/tests/modules/network_packets_ut.h index 1a46840a0..d5fefc3f4 100644 --- a/code/tests/modules/network_packets_ut.h +++ b/code/tests/modules/network_packets_ut.h @@ -14,7 +14,7 @@ #include "networking/rpc/client_identity.h" #include "networking/rpc/server_resources.h" -#include +#include #include #include diff --git a/code/tests/modules/replication_authority_ut.h b/code/tests/modules/replication_authority_ut.h index 99c2d30d4..60ff9490d 100644 --- a/code/tests/modules/replication_authority_ut.h +++ b/code/tests/modules/replication_authority_ut.h @@ -12,8 +12,8 @@ #include "networking/replication/network_entity.h" #include "networking/replication/replication_manager.h" -#include -#include +#include +#include #include // Server authority over entity destruction. The base ReplicaManager3 destruction dispatch resolves diff --git a/code/tests/modules/replication_rate_ut.h b/code/tests/modules/replication_rate_ut.h index 8df78e02e..2aff239d3 100644 --- a/code/tests/modules/replication_rate_ut.h +++ b/code/tests/modules/replication_rate_ut.h @@ -12,8 +12,8 @@ #include "networking/replication/network_entity.h" #include "networking/replication/replication_manager.h" -#include -#include +#include +#include // Transform channel rate rules: distance bands, idle refresh, and per-entity ordering. MODULE(replication_rate, { diff --git a/code/tests/modules/rpc_identifier_ut.h b/code/tests/modules/rpc_identifier_ut.h index b0172cb3e..558bf9581 100644 --- a/code/tests/modules/rpc_identifier_ut.h +++ b/code/tests/modules/rpc_identifier_ut.h @@ -17,8 +17,8 @@ #include "networking/rpc/server_resources.h" #include "networking/rpc/voice_settings.h" -#include -#include +#include +#include #include #include diff --git a/code/tests/modules/state_bag_ut.h b/code/tests/modules/state_bag_ut.h index f09fe49c6..c76f78aa0 100644 --- a/code/tests/modules/state_bag_ut.h +++ b/code/tests/modules/state_bag_ut.h @@ -14,7 +14,7 @@ #include "networking/replication/state_bag.h" #include "networking/rpc/state_bag_sync.h" -#include +#include #include #include diff --git a/code/tests/modules/streamed_assets_ut.h b/code/tests/modules/streamed_assets_ut.h index 5bed6a354..a5fb88723 100644 --- a/code/tests/modules/streamed_assets_ut.h +++ b/code/tests/modules/streamed_assets_ut.h @@ -14,7 +14,7 @@ #include "utils/streamed_assets/pak_archive.h" #include "utils/streamed_assets/policy.h" -#include +#include #include #include diff --git a/code/tests/modules/voice_positions_ut.h b/code/tests/modules/voice_positions_ut.h index 3ec1fa214..7f23aa323 100644 --- a/code/tests/modules/voice_positions_ut.h +++ b/code/tests/modules/voice_positions_ut.h @@ -14,8 +14,8 @@ #include "voice/server/voice_server.h" #include -#include -#include +#include +#include #include #include