From 9b4f4aa9105cd7458d6e7dbc859cb72d0add1300 Mon Sep 17 00:00:00 2001
From: hgn <hgodden00@gmail.com>
Date: Sun, 1 Oct 2023 06:49:35 +0100
Subject: [PATCH] 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