Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Vulnerabilitate noua , exploit de tip DoS . [ HEADER_CG_CHARACTER_SELECT ]
- 1.intra in sursa game --> game/src (input_login.cpp) si cauta :
- db_clientdesc->DBPacket(HEADER_GD_PLAYER_LOAD, d->GetHandle(), &player_load_packet, sizeof(TPlayerLoadPacket));
- *Inlocuie cu :
- // fix exploid by kapa3a
- if (player_load_packet.player_id == 0)
- {
- sys_err("invalid player_id from account %d\n",c_r.id);
- d->DelayedDisconnect(0);
- return;
- }
- db_clientdesc->DBPacket(HEADER_GD_PLAYER_LOAD, d->GetHandle(), &player_load_packet, sizeof(TPlayerLoadPacket));
- // fix exploid by kapa3a
- 2.Cauta :
- void CInputLogin::CharacterSelect(LPDESC d, const char * data)
- *Deasupra la :
- TPlayerLoadPacket player_load_packet;
- *Adauga :
- if (!c_r.players[pinfo->index].dwID) // FIXME
- {
- sys_err("No player id for login %s", c_r.login);
- d->SetPhase(PHASE_CLOSE);
- return;
- }
- 3.Cauta :
- void CInputLogin::ChangeName(LPDESC d, const char * data)
- *Deasupra la :
- if (!c_r.players[p->index].bChangeName)
- return;
- *Adauga :
- if (p->index >= PLAYER_PER_ACCOUNT) // FIXME overflow
- {
- sys_err("index overflow %d, login: %s", p->index, c_r.login);
- d->SetPhase(PHASE_CLOSE);
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement