[dataset-manager] check the read length from message on reading TLVs (#4313)

This commit is contained in:
Abtin Keshavarzian
2019-11-11 17:53:15 +01:00
committed by Jonathan Hui
parent bd7bd470ed
commit 09a9aa4e34
+2 -2
View File
@@ -210,10 +210,10 @@ otError DatasetManager::HandleSet(Coap::Message &aMessage, const Ip6::MessageInf
uint8_t value[Dataset::kMaxValueSize];
} 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));
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())
{