Verify that we won't call a method on a non-existant element.

This seems to be the root of a handfull of crashes.
This commit is contained in:
Charles Lohr
2004-12-07 05:53:03 +00:00
parent c3f154dd27
commit 9e8cbeb8df
+3
View File
@@ -515,6 +515,7 @@ void StepManiaLanServer::SendStatsToClients()
void StepManiaLanServer::SendNetPacket(const unsigned int client, PacketFunctions& Packet) void StepManiaLanServer::SendNetPacket(const unsigned int client, PacketFunctions& Packet)
{ {
if ( client < Client.size() )
Client[client]->clientSocket.SendPack((char*)Packet.Data, Packet.Position); Client[client]->clientSocket.SendPack((char*)Packet.Data, Packet.Position);
} }
@@ -592,6 +593,7 @@ void StepManiaLanServer::NewClientCheck()
void StepManiaLanServer::SendValue(uint8_t value, const unsigned int clientNum) void StepManiaLanServer::SendValue(uint8_t value, const unsigned int clientNum)
{ {
if ( clientNum < Client.size() )
Client[clientNum]->clientSocket.SendPack((char*)&value, sizeof(uint8_t)); Client[clientNum]->clientSocket.SendPack((char*)&value, sizeof(uint8_t));
} }
@@ -814,6 +816,7 @@ void StepManiaLanServer::ServerChat(const CString& message)
bool StepManiaLanServer::CheckConnection(const unsigned int clientNum) bool StepManiaLanServer::CheckConnection(const unsigned int clientNum)
{ {
//If there is an error close the socket. //If there is an error close the socket.
if ( clientNum < Client.size() )
if (Client[clientNum]->clientSocket.IsError()) if (Client[clientNum]->clientSocket.IsError())
{ {
Disconnect(clientNum); Disconnect(clientNum);