fix overflow in CG_ParseTeamInfo, based on patch for Tremulous, thanks to Roman Tetelman

This commit is contained in:
Richard Allen 2009-07-08 20:55:46 +00:00
parent c9f4085bc4
commit 2ba76d233e

View file

@ -387,9 +387,17 @@ static void CG_ParseTeamInfo(void)
numSortedTeamPlayers = atoi(CG_Argv(1)); numSortedTeamPlayers = atoi(CG_Argv(1));
if (numSortedTeamPlayers < 0 || numSortedTeamPlayers > TEAM_MAXOVERLAY) {
CG_Error("CG_ParseTeamInfo: numSortedTeamPlayers out of range (%d)",
numSortedTeamPlayers);
return;
}
for (i = 0; i < numSortedTeamPlayers; i++) { for (i = 0; i < numSortedTeamPlayers; i++) {
client = atoi(CG_Argv(i * 6 + 2)); client = atoi(CG_Argv(i * 6 + 2));
if (client < 0 || client >= MAX_CLIENTS) {
CG_Error("CG_ParseTeamInfo: bad client number: %d", client);
return;
}
sortedTeamPlayers[i] = client; sortedTeamPlayers[i] = client;
cgs.clientinfo[client].location = atoi(CG_Argv(i * 6 + 3)); cgs.clientinfo[client].location = atoi(CG_Argv(i * 6 + 3));