mirror of
https://github.com/espressif/openthread.git
synced 2026-09-06 01:00:09 +00:00
[dataset-manager] check the read length from message on reading TLVs (#4313)
This commit is contained in:
committed by
Jonathan Hui
parent
bd7bd470ed
commit
09a9aa4e34
@@ -210,10 +210,10 @@ otError DatasetManager::HandleSet(Coap::Message &aMessage, const Ip6::MessageInf
|
|||||||
uint8_t value[Dataset::kMaxValueSize];
|
uint8_t value[Dataset::kMaxValueSize];
|
||||||
} OT_TOOL_PACKED_END data;
|
} OT_TOOL_PACKED_END data;
|
||||||
|
|
||||||
aMessage.Read(offset, sizeof(Tlv), &data.tlv);
|
VerifyOrExit(aMessage.Read(offset, sizeof(Tlv), &data.tlv) == sizeof(Tlv));
|
||||||
VerifyOrExit(data.tlv.GetLength() <= sizeof(data.value));
|
VerifyOrExit(data.tlv.GetLength() <= sizeof(data.value));
|
||||||
|
|
||||||
aMessage.Read(offset + sizeof(Tlv), data.tlv.GetLength(), data.value);
|
VerifyOrExit(aMessage.Read(offset + sizeof(Tlv), data.tlv.GetLength(), data.value) == data.tlv.GetLength());
|
||||||
|
|
||||||
switch (data.tlv.GetType())
|
switch (data.tlv.GetType())
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user