diff --git a/src/d_clisrv.c b/src/d_clisrv.c index 224a6d8ae..ead340d51 100644 --- a/src/d_clisrv.c +++ b/src/d_clisrv.c @@ -3464,6 +3464,7 @@ static void Got_AddPlayer(const UINT8 **p, INT32 playernum) UINT8 splitscreenplayer = 0; UINT8 i; player_t *newplayer; + uint8_t public_key[PUBKEYLENGTH]; if (playernum != serverplayer && !IsPlayerAdmin(playernum)) { @@ -3487,13 +3488,14 @@ static void Got_AddPlayer(const UINT8 **p, INT32 playernum) newplayer = &players[newplayernum]; READSTRINGN(*p, player_names[newplayernum], MAXPLAYERNAME); - READMEM(*p, players[newplayernum].public_key, PUBKEYLENGTH); + READMEM(*p, public_key, PUBKEYLENGTH); READMEM(*p, clientpowerlevels[newplayernum], sizeof(((serverplayer_t *)0)->powerlevels)); console = READUINT8(*p); splitscreenplayer = READUINT8(*p); G_AddPlayer(newplayernum, console); + memcpy(players[newplayernum].public_key, public_key, PUBKEYLENGTH); for (i = 0; i < MAXAVAILABILITY; i++) {