From ae4c28c5ae7d0fefcad9ba07de378343dd7931e1 Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Fri, 2 Sep 2022 04:57:21 -0700 Subject: [PATCH] [core] do not use `FreeMessageOnError()` on nonnull pointer (#8118) --- src/core/net/dnssd_server.cpp | 4 ++-- src/core/thread/mle.cpp | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/core/net/dnssd_server.cpp b/src/core/net/dnssd_server.cpp index c996c153a..91550dcf2 100644 --- a/src/core/net/dnssd_server.cpp +++ b/src/core/net/dnssd_server.cpp @@ -219,10 +219,10 @@ void Server::SendResponse(Header aHeader, error = aSocket.SendTo(aMessage, aMessageInfo); - FreeMessageOnError(&aMessage, error); - if (error != kErrorNone) { + // do not use `FreeMessageOnError()` to avoid null check on nonnull pointer + aMessage.Free(); LogWarn("failed to send DNS-SD reply: %s", ErrorToString(error)); } else diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index e71096f22..b277dfd10 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -1640,7 +1640,11 @@ void Mle::SendDelayedResponse(TxMessage &aMessage, const DelayedResponseMetadata } exit: - FreeMessageOnError(&aMessage, error); + if (error != kErrorNone) + { + // do not use `FreeMessageOnError()` to avoid null check on nonnull pointer + aMessage.Free(); + } } void Mle::RemoveDelayedDataResponseMessage(void)