From d7e9e5db31cf05de6beadd3495ec437ad68ffedb Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Mon, 6 Jan 2020 08:28:50 -0800 Subject: [PATCH] [ip6] fix the fragmentation header check (#4445) --- src/core/net/ip6.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/net/ip6.cpp b/src/core/net/ip6.cpp index 4ef87cff4..303e03ec7 100644 --- a/src/core/net/ip6.cpp +++ b/src/core/net/ip6.cpp @@ -734,8 +734,9 @@ otError Ip6::HandleFragment(Message &aMessage, Netif *aNetif, MessageInfo &aMess for (message = mReassemblyList.GetHead(); message; message = message->GetNext()) { - VerifyOrExit(aMessage.Read(0, sizeof(headerBuffer), &headerBuffer) == sizeof(headerBuffer), + VerifyOrExit(message->Read(0, sizeof(headerBuffer), &headerBuffer) == sizeof(headerBuffer), error = OT_ERROR_PARSE); + if (message->GetDatagramTag() == fragmentHeader.GetIdentification() && headerBuffer.GetSource() == header.GetSource() && headerBuffer.GetDestination() == header.GetDestination()) {