From 5eda7f0e9006d8d8edebb1cb222fc349291330e5 Mon Sep 17 00:00:00 2001 From: Lu Wang Date: Thu, 16 Jun 2016 01:19:31 +0800 Subject: [PATCH] free the message from ot stack (#136) --- src/ncp/ncp_base.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/ncp/ncp_base.cpp b/src/ncp/ncp_base.cpp index 92cea3abc..dfcf74128 100644 --- a/src/ncp/ncp_base.cpp +++ b/src/ncp/ncp_base.cpp @@ -283,6 +283,8 @@ void NcpBase::HandleDatagramFromStack(Message &message) { SendLastStatus(SPINEL_HEADER_FLAG | SPINEL_HEADER_IID_0, SPINEL_STATUS_DROPPED); } + + Message::Free(message); } else { @@ -414,8 +416,8 @@ void NcpBase::HandleSendDone() if (mSendQueue.GetHead() != NULL) { Message &message(*mSendQueue.GetHead()); - HandleDatagramFromStack(message); mSendQueue.Dequeue(message); + HandleDatagramFromStack(message); } if (mQueuedGetHeader != 0) @@ -2202,6 +2204,11 @@ void NcpBase::SetPropertyHandler_STREAM_NET_INSECURE(uint8_t header, spinel_prop } else { + if (message) + { + Message::Free(*message); + } + SendLastStatus(header, ThreadErrorToSpinelStatus(errorCode)); } } @@ -2260,6 +2267,11 @@ void NcpBase::SetPropertyHandler_STREAM_NET(uint8_t header, spinel_prop_key_t ke } else { + if (message) + { + Message::Free(*message); + } + SendLastStatus(header, ThreadErrorToSpinelStatus(errorCode)); } }