diff --git a/xwords4/common/server.c b/xwords4/common/server.c index d3f404982..8baa72961 100644 --- a/xwords4/common/server.c +++ b/xwords4/common/server.c @@ -2429,6 +2429,7 @@ server_getLastMoveTime( const ServerCtxt* server ) static void doEndGame( ServerCtxt* server, XP_S16 quitter ) { + XP_ASSERT( quitter < server->vol.gi->nPlayers ); SETSTATE( server, XWSTATE_GAMEOVER ); setTurn( server, -1 ); server->nv.quitter = quitter; @@ -2445,7 +2446,7 @@ putQuitter( const ServerCtxt* server, XWStreamCtxt* stream, XP_S16 quitter ) } static void -getQuitter( const ServerCtxt* server, XWStreamCtxt* stream, XP_S16* quitter ) +getQuitter( const ServerCtxt* server, XWStreamCtxt* stream, XP_S8* quitter ) { *quitter = STREAM_VERS_DICTNAME <= server->nv.streamVersion ? stream_getU8( stream ) : -1; @@ -2462,6 +2463,7 @@ static void endGameInternal( ServerCtxt* server, GameEndReason XP_UNUSED(why), XP_S16 quitter ) { XP_ASSERT( server->nv.gameState != XWSTATE_GAMEOVER ); + XP_ASSERT( quitter < server->vol.gi->nPlayers ); if ( server->vol.gi->serverRole != SERVER_ISCLIENT ) { @@ -2756,7 +2758,7 @@ server_receiveMessage( ServerCtxt* server, XWStreamCtxt* incoming ) XP_FREE( server->mpool, msg ); #endif } else if ( readStreamHeader( server, incoming ) ) { - XP_S16 quitter; + XP_S8 quitter; switch( code ) { /* case XWPROTO_MOVEMADE_INFO: */ /* accepted = client_reflectMoveMade( server, incoming ); */ diff --git a/xwords4/linux/linuxmain.c b/xwords4/linux/linuxmain.c index e77332f45..0587fbad7 100644 --- a/xwords4/linux/linuxmain.c +++ b/xwords4/linux/linuxmain.c @@ -216,6 +216,7 @@ void catFinalScores( const CommonGlobals* cGlobals, XP_S16 quitter ) { XWStreamCtxt* stream; + XP_ASSERT( quitter < cGlobals->params->gi.nPlayers ); stream = mem_stream_make( MPPARM(cGlobals->params->util->mpool) cGlobals->params->vtMgr,