1
0

additional crash protection from a bad client/connection

This commit is contained in:
Emagi 2025-03-04 21:58:50 -05:00
parent 89acf4da25
commit fbe00fc46f
2 changed files with 13 additions and 0 deletions

View File

@ -512,6 +512,15 @@ EQ2Packet* Spawn::spawn_serialize(Player* player, int16 version, int16 offset, i
}
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();
InitializeHeaderPacketData(player, header, index);

View File

@ -2647,6 +2647,10 @@ void PacketStruct::setItemArrayDataByName(const char* name, Item* item, Player*
}
void PacketStruct::ResetData() {
if (this == nullptr) {
LogWrite(PACKET__ERROR, 0, "PacketStruct", "ResetData called on a null PacketStruct pointer");
return;
}
vector<DataStruct*>::iterator itr;
for (itr = structs.begin(); itr != structs.end(); itr++) {
DataStruct* ds = *itr;