mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 19:37:02 +00:00
[8850] Check packet opcode for >= NUM_MSG_TYPES before queueing.
Also add check for wrong packet status requirement in code.
This commit is contained in:
parent
ab62a11d4e
commit
0011a41003
3 changed files with 86 additions and 83 deletions
|
|
@ -169,14 +169,6 @@ bool WorldSession::Update(uint32 /*diff*/)
|
|||
packet->GetOpcode());
|
||||
#endif*/
|
||||
|
||||
if(packet->GetOpcode() >= NUM_MSG_TYPES)
|
||||
{
|
||||
sLog.outError( "SESSION: received non-existed opcode %s (0x%.4X)",
|
||||
LookupOpcodeName(packet->GetOpcode()),
|
||||
packet->GetOpcode());
|
||||
}
|
||||
else
|
||||
{
|
||||
OpcodeHandler& opHandle = opcodeTable[packet->GetOpcode()];
|
||||
try
|
||||
{
|
||||
|
|
@ -249,6 +241,11 @@ bool WorldSession::Update(uint32 /*diff*/)
|
|||
LookupOpcodeName(packet->GetOpcode()),
|
||||
packet->GetOpcode());
|
||||
break;
|
||||
default:
|
||||
sLog.outError("SESSION: received wrong-status-req opcode %s (0x%.4X)",
|
||||
LookupOpcodeName(packet->GetOpcode()),
|
||||
packet->GetOpcode());
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch(ByteBufferException &)
|
||||
|
|
@ -261,7 +258,6 @@ bool WorldSession::Update(uint32 /*diff*/)
|
|||
packet->hexlike();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
delete packet;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -659,6 +659,13 @@ int WorldSocket::ProcessIncoming (WorldPacket* new_pct)
|
|||
|
||||
const ACE_UINT16 opcode = new_pct->GetOpcode ();
|
||||
|
||||
if (opcode >= NUM_MSG_TYPES)
|
||||
{
|
||||
sLog.outError( "SESSION: received non-existed opcode %s (0x%.4X)",
|
||||
LookupOpcodeName(opcode), opcode);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (closing_)
|
||||
return -1;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "8849"
|
||||
#define REVISION_NR "8850"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue