diff --git a/src/core/thread/mesh_forwarder.cpp b/src/core/thread/mesh_forwarder.cpp index ee749fe92..9574bbd54 100644 --- a/src/core/thread/mesh_forwarder.cpp +++ b/src/core/thread/mesh_forwarder.cpp @@ -770,11 +770,11 @@ start: payload += fragmentHeaderLength; headerLength += fragmentHeaderLength; - fragmentLength = (aFrame.GetMaxPayloadLength() - headerLength) & ~0x7; + fragmentLength = aFrame.GetMaxPayloadLength() - headerLength; if (payloadLength > fragmentLength) { - payloadLength = fragmentLength; + payloadLength = (fragmentLength & ~0x7); } // Copy IPv6 Payload