From 428944b1f6ca6b025b2966324e28008e46fefe48 Mon Sep 17 00:00:00 2001 From: Abtin Keshavarzian Date: Fri, 26 Nov 2021 22:30:50 -0800 Subject: [PATCH] [mesh-forwarder] ensure message allocation with correct priority (#7203) This commit fixes the incorrect call to `MessagePool::New()` to allocate a message in `MeshForwarder::HandleMesh()` method. The existing code calls `New(Message::kType6lowpan, priority)` with two parameters which maps to the flavor `New()` method with three parameters with last one (`Message::Settings`) being optional (having a default value). Basically, the existing code treats the `priority` (second argument) as `aReserveHeader` parameter in the `New()` instead of the message priority. --- src/core/thread/mesh_forwarder_ftd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/thread/mesh_forwarder_ftd.cpp b/src/core/thread/mesh_forwarder_ftd.cpp index 1fab06d7d..7187442ab 100644 --- a/src/core/thread/mesh_forwarder_ftd.cpp +++ b/src/core/thread/mesh_forwarder_ftd.cpp @@ -805,7 +805,7 @@ void MeshForwarder::HandleMesh(uint8_t * aFrame, meshHeader.DecrementHopsLeft(); GetForwardFramePriority(aFrame, aFrameLength, meshSource, meshDest, priority); - message = Get().New(Message::kType6lowpan, priority); + message = Get().New(Message::kType6lowpan, /* aReserveHeader */ 0, priority); VerifyOrExit(message != nullptr, error = kErrorNoBufs); SuccessOrExit(error = message->SetLength(meshHeader.GetHeaderLength() + aFrameLength));