diff options
author | Fedja Beader <fedja@protonmail.ch> | 2024-05-09 15:33:40 +0000 |
---|---|---|
committer | Fedja Beader <fedja@protonmail.ch> | 2024-05-09 15:33:40 +0000 |
commit | dd1627eb548a7705f749d2e8529207e6123e5e2e (patch) | |
tree | c177824a48bf6fd4ecad6c0d3b7f0fb3a6206427 /tools | |
parent | 4552a373ebffe0e7ab163fe0f82b0f260d573d81 (diff) | |
download | plus-dd1627eb548a7705f749d2e8529207e6123e5e2e.tar.gz plus-dd1627eb548a7705f749d2e8529207e6123e5e2e.tar.bz2 plus-dd1627eb548a7705f749d2e8529207e6123e5e2e.tar.xz plus-dd1627eb548a7705f749d2e8529207e6123e5e2e.zip |
Fix guild lvl-up packet parsing AND change password causing client exit in ML
What happened:
1) herc evol sends 0x100 as packet ID offset
2) 0x100 is added to 0x0062 of SMSG_CHAR_PASSWORD_RESPONSE
3) SMSG_CHAR_PASSWORD_RESPONSE is then inserted into 0x162
slot of packet map, shadowing SMSG_GUILD_SKILL_INFO
4) on guild lvl-up, server sends this in SMSG_GUILD_SKILL_INFO
5) ManaVerse exits in confusion.
Note 1: due to popupmenu paste not working in change password dialog, tested password change only with invalid old password, which worked (opened error dialog instead of client exiting).
Note 2: Some packet handlers are bound using &Ea::LoginRecv prefix, this one had &LoginRecv and this was kept this way (uses vtable lookup?).
~~TODO: SMSG_CHAR_PASSWORD_RESPONSE seems to be something about password changes, but I could not find this packet either in TMWA or herc. Still, I need to test if these still work on all active servers~~ Tested.
Squashed with:
* Fix exit on password change, too
* Fix guild lvl-up packet parsing causing client exit in ML
****
mana/plus!81
Diffstat (limited to 'tools')
0 files changed, 0 insertions, 0 deletions