From 09a9aa4e3453e2d910bebae0e2e241c25b189bd8 Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Thu, 7 Nov 2019 19:24:51 -0800 Subject: [PATCH] [dataset-manager] check the read length from message on reading TLVs (#4313) --- src/core/meshcop/dataset_manager_ftd.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/meshcop/dataset_manager_ftd.cpp b/src/core/meshcop/dataset_manager_ftd.cpp index 80360c058..93dca6f57 100644 --- a/src/core/meshcop/dataset_manager_ftd.cpp +++ b/src/core/meshcop/dataset_manager_ftd.cpp @@ -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()) {