diff --git a/src/CNShardServer.hpp b/src/CNShardServer.hpp index 2f69e73..c403f99 100644 --- a/src/CNShardServer.hpp +++ b/src/CNShardServer.hpp @@ -29,6 +29,7 @@ enum SHARDPACKETID { P_FE2CL_REP_NANO_ACTIVE_SUCC = 822083624, P_FE2CL_REP_PC_ENTER_SUCC = 822083586, P_FE2CL_REP_PC_LOADING_COMPLETE_SUCC = 822083833, + P_FE2CL_REP_PC_GOTO_SUCC = 822083633, P_FE2CL_REQ_LIVE_CHECK = 822083792, P_FE2CL_PC_NEW = 822083587, P_FE2CL_PC_MOVE = 822083592, @@ -42,7 +43,7 @@ enum SHARDPACKETID { P_FE2CL_PC_SLOPE = 822083705, P_FE2CL_NPC_ENTER = 822083595, P_FE2CL_NPC_EXIT = 822083596, - P_FE2CL_REP_PC_GOTO_SUCC = 822083633, + P_FE2CL_ANNOUNCE_MSG = 822083778, P_FE2CL_GM_REP_PC_SET_VALUE = 822083781, P_FE2CL_REP_SEND_FREECHAT_MESSAGE_SUCC = 822083602, P_FE2CL_REP_PC_AVATAR_EMOTES_CHAT = 822083730, diff --git a/src/ChatManager.cpp b/src/ChatManager.cpp index 451bd15..efbc77f 100644 --- a/src/ChatManager.cpp +++ b/src/ChatManager.cpp @@ -9,6 +9,9 @@ void ChatManager::init() { } void ChatManager::chatHandler(CNSocket* sock, CNPacketData* data) { + if (data->size != sizeof(sP_CL2FE_REQ_SEND_FREECHAT_MESSAGE)) + return; // malformed packet + sP_CL2FE_REQ_SEND_FREECHAT_MESSAGE* chat = (sP_CL2FE_REQ_SEND_FREECHAT_MESSAGE*)data->buf; PlayerView plr = PlayerManager::players[sock]; diff --git a/src/NanoManager.cpp b/src/NanoManager.cpp index 4f7e5f8..5d2a560 100644 --- a/src/NanoManager.cpp +++ b/src/NanoManager.cpp @@ -8,6 +8,9 @@ void NanoManager::init() { } void NanoManager::nanoSummonHandler(CNSocket* sock, CNPacketData* data) { + if (data->size != sizeof(sP_CL2FE_REQ_NANO_ACTIVE)) + return; // malformed packet + sP_CL2FE_REQ_NANO_ACTIVE* nano = (sP_CL2FE_REQ_NANO_ACTIVE*)data->buf; PlayerView plr = PlayerManager::players[sock];