From 9b4f4aa9105cd7458d6e7dbc859cb72d0add1300 Mon Sep 17 00:00:00 2001 From: hgn Date: Sun, 1 Oct 2023 06:49:35 +0100 Subject: [PATCH 1/1] fix segfault --- gameserver.c | 2 ++ player_remote.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/gameserver.c b/gameserver.c index b6ca210..00c39f3 100644 --- a/gameserver.c +++ b/gameserver.c @@ -95,6 +95,7 @@ static void gameserver_player_join( int index ){ chs = vg_strncpy( client->item_player, item->uid, ADDON_UID_MAX, k_strncpy_always_add_null ); item->type = k_addon_type_player; + item->client = i; size = sizeof(netmsg_playeritem) + chs + 1; SteamAPI_ISteamNetworkingSockets_SendMessageToConnection( hSteamNetworkingSockets, joiner->connection, @@ -103,6 +104,7 @@ static void gameserver_player_join( int index ){ chs = vg_strncpy( client->item_board, item->uid, ADDON_UID_MAX, k_strncpy_always_add_null ); item->type = k_addon_type_board; + item->client = i; size = sizeof(netmsg_playeritem) + chs + 1; SteamAPI_ISteamNetworkingSockets_SendMessageToConnection( hSteamNetworkingSockets, joiner->connection, diff --git a/player_remote.c b/player_remote.c index f81cdf5..6b66656 100644 --- a/player_remote.c +++ b/player_remote.c @@ -132,6 +132,11 @@ static void player_remote_rx_200_300( SteamNetworkingMessage_t *msg ){ netmsg_playeritem *item = msg->m_pData; if( !packet_minsize( msg, sizeof(*item)+1 )) return; + if( item->client >= vg_list_size(netplayers.list) ){ + vg_error( "inetmsg_playerframe: player index out of range\n" ); + return; + } + vg_info( "Client #%u equiped: [%u] %s\n", item->client, item->type, item->uid ); -- 2.25.1