From 86e1f2a4d4140f0cf9e35e66b4ca3be022a572fb Mon Sep 17 00:00:00 2001 From: Buke Po Date: Fri, 4 Aug 2017 23:49:11 +0800 Subject: [PATCH] [ip6] free message if error occurred in Ip6::SendRaw() (#2063) --- src/core/net/ip6.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/core/net/ip6.cpp b/src/core/net/ip6.cpp index 844815d0a..fc86b97a5 100644 --- a/src/core/net/ip6.cpp +++ b/src/core/net/ip6.cpp @@ -664,6 +664,7 @@ otError Ip6::SendRaw(Message &aMessage, int8_t aInterfaceId) otError error = OT_ERROR_NONE; Header header; MessageInfo messageInfo; + bool freed = false; SuccessOrExit(error = header.Init(aMessage)); @@ -679,8 +680,15 @@ otError Ip6::SendRaw(Message &aMessage, int8_t aInterfaceId) } error = HandleDatagram(aMessage, NULL, aInterfaceId, NULL, true); + freed = true; exit: + + if (!freed) + { + aMessage.Free(); + } + return error; }