From c972c5cb936ef1f640ab90fbe03e7f2631dbcb18 Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Wed, 24 Apr 2019 10:17:07 -0700 Subject: [PATCH] [network-data] add bounds check when comparing server data (#3781) --- src/core/thread/network_data_leader_ftd.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/core/thread/network_data_leader_ftd.cpp b/src/core/thread/network_data_leader_ftd.cpp index 675aff87b..d0170e403 100644 --- a/src/core/thread/network_data_leader_ftd.cpp +++ b/src/core/thread/network_data_leader_ftd.cpp @@ -694,6 +694,8 @@ bool Leader::IsStableUpdated(uint8_t *aTlvs, uint8_t aTlvsLength, uint8_t *aTlvs { ServerTlv *serverBase = static_cast(curServerBase); + VerifyOrExit((curServerBase + 1) <= endServerBase && curServerBase->GetNext() <= end); + if (curServerBase->IsStable() && (server->GetServer16() == serverBase->GetServer16()) && (server->GetServerDataLength() == serverBase->GetServerDataLength()) && (memcmp(server->GetServerData(), serverBase->GetServerData(),