From: hgn Date: Sun, 1 Oct 2023 05:49:35 +0000 (+0100) Subject: fix segfault X-Git-Url: https://harrygodden.com/git/?a=commitdiff_plain;h=9b4f4aa9105cd7458d6e7dbc859cb72d0add1300;hp=d00cf977616e5d238c49fd42a1fc8c87200a8672;p=carveJwlIkooP6JGAAIwe30JlM.git fix segfault --- 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 );