additional crash protection from a bad client/connection
This commit is contained in:
parent
89acf4da25
commit
fbe00fc46f
@ -512,6 +512,15 @@ EQ2Packet* Spawn::spawn_serialize(Player* player, int16 version, int16 offset, i
|
|||||||
}
|
}
|
||||||
|
|
||||||
PacketStruct* header = player->GetSpawnHeaderStruct();
|
PacketStruct* header = player->GetSpawnHeaderStruct();
|
||||||
|
if (!header) {
|
||||||
|
LogWrite(SPAWN__ERROR, 0, "Spawn", "Spawn::spawn_serialize: GetSpawnHeaderStruct returned null!");
|
||||||
|
player->GetZone()->SetSpawnStructs(player->GetClient());
|
||||||
|
header = player->GetSpawnHeaderStruct();
|
||||||
|
if(!header) {
|
||||||
|
LogWrite(SPAWN__ERROR, 0, "Spawn", "Spawn::spawn_serialize: GetSpawnHeaderStruct still null likely to crash!");
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
header->ResetData();
|
header->ResetData();
|
||||||
InitializeHeaderPacketData(player, header, index);
|
InitializeHeaderPacketData(player, header, index);
|
||||||
|
|
||||||
|
@ -2647,6 +2647,10 @@ void PacketStruct::setItemArrayDataByName(const char* name, Item* item, Player*
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PacketStruct::ResetData() {
|
void PacketStruct::ResetData() {
|
||||||
|
if (this == nullptr) {
|
||||||
|
LogWrite(PACKET__ERROR, 0, "PacketStruct", "ResetData called on a null PacketStruct pointer");
|
||||||
|
return;
|
||||||
|
}
|
||||||
vector<DataStruct*>::iterator itr;
|
vector<DataStruct*>::iterator itr;
|
||||||
for (itr = structs.begin(); itr != structs.end(); itr++) {
|
for (itr = structs.begin(); itr != structs.end(); itr++) {
|
||||||
DataStruct* ds = *itr;
|
DataStruct* ds = *itr;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user