fix a few potential buffer overwrite in Game VM

This commit is contained in:
David CARLIER 2017-12-16 18:51:34 +00:00 committed by Zack Middleton
parent 76ec9fb6bd
commit c904f6d4aa
2 changed files with 8 additions and 8 deletions

View file

@ -817,19 +817,19 @@ void Svcmd_BotList_f( void ) {
trap_Print("^1name model aifile funname\n"); trap_Print("^1name model aifile funname\n");
for (i = 0; i < g_numBots; i++) { for (i = 0; i < g_numBots; i++) {
strcpy(name, Info_ValueForKey( g_botInfos[i], "name" )); Q_strncpyz(name, Info_ValueForKey( g_botInfos[i], "name" ), sizeof( name ));
if ( !*name ) { if ( !*name ) {
strcpy(name, "UnnamedPlayer"); strcpy(name, "UnnamedPlayer");
} }
strcpy(funname, Info_ValueForKey( g_botInfos[i], "funname" )); Q_strncpyz(funname, Info_ValueForKey( g_botInfos[i], "funname" ), sizeof( funname ));
if ( !*funname ) { if ( !*funname ) {
strcpy(funname, ""); strcpy(funname, "");
} }
strcpy(model, Info_ValueForKey( g_botInfos[i], "model" )); Q_strncpyz(model, Info_ValueForKey( g_botInfos[i], "model" ), sizeof( model ));
if ( !*model ) { if ( !*model ) {
strcpy(model, "visor/default"); strcpy(model, "visor/default");
} }
strcpy(aifile, Info_ValueForKey( g_botInfos[i], "aifile")); Q_strncpyz(aifile, Info_ValueForKey( g_botInfos[i], "aifile"), sizeof( aifile ));
if (!*aifile ) { if (!*aifile ) {
strcpy(aifile, "bots/default_c.c"); strcpy(aifile, "bots/default_c.c");
} }

View file

@ -838,11 +838,11 @@ void ClientUserinfoChanged( int clientNum ) {
teamLeader = client->sess.teamLeader; teamLeader = client->sess.teamLeader;
// colors // colors
strcpy(c1, Info_ValueForKey( userinfo, "color1" )); Q_strncpyz(c1, Info_ValueForKey( userinfo, "color1" ), sizeof( c1 ));
strcpy(c2, Info_ValueForKey( userinfo, "color2" )); Q_strncpyz(c2, Info_ValueForKey( userinfo, "color2" ), sizeof( c2 ));
strcpy(redTeam, Info_ValueForKey( userinfo, "g_redteam" )); Q_strncpyz(redTeam, Info_ValueForKey( userinfo, "g_redteam" ), sizeof( redTeam ));
strcpy(blueTeam, Info_ValueForKey( userinfo, "g_blueteam" )); Q_strncpyz(blueTeam, Info_ValueForKey( userinfo, "g_blueteam" ), sizeof( blueTeam ));
// send over a subset of the userinfo keys so other clients can // send over a subset of the userinfo keys so other clients can
// print scoreboards, display models, and play custom sounds // print scoreboards, display models, and play custom sounds