From ba7c2f657ab3cbf2a2ad5be9426b592f09d03724 Mon Sep 17 00:00:00 2001 From: Buke Po Date: Tue, 5 Sep 2017 17:37:09 -0500 Subject: [PATCH] [mle] verify hop limit is 255 (#2167) --- src/core/thread/mle.cpp | 3 ++- src/core/thread/mle.hpp | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index ec2327199..778a12098 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -1942,7 +1942,7 @@ otError Mle::SendMessage(Message &aMessage, const Ip6::Address &aDestination) messageInfo.SetSockAddr(mLinkLocal64.GetAddress()); messageInfo.SetPeerPort(kUdpPort); messageInfo.SetInterfaceId(netif.GetInterfaceId()); - messageInfo.SetHopLimit(255); + messageInfo.SetHopLimit(kMleHopLimit); SuccessOrExit(error = mSocket.SendTo(aMessage, messageInfo)); @@ -2008,6 +2008,7 @@ void Mle::HandleUdpReceive(Message &aMessage, const Ip6::MessageInfo &aMessageIn Neighbor *neighbor; VerifyOrExit(aMessageInfo.GetLinkInfo() != NULL); + VerifyOrExit(aMessageInfo.GetHopLimit() == kMleHopLimit); length = aMessage.Read(aMessage.GetOffset(), sizeof(header), &header); VerifyOrExit(header.IsValid() && header.GetLength() <= length); diff --git a/src/core/thread/mle.hpp b/src/core/thread/mle.hpp index 1e0d9b3de..74622d7c7 100644 --- a/src/core/thread/mle.hpp +++ b/src/core/thread/mle.hpp @@ -1336,6 +1336,7 @@ private: enum { kMleMessagePriority = Message::kPriorityHigh, + kMleHopLimit = 255, }; void GenerateNonce(const Mac::ExtAddress &aMacAddr, uint32_t aFrameCounter, uint8_t aSecurityLevel,