diff --git a/src/core/thread/dua_manager.cpp b/src/core/thread/dua_manager.cpp index 99ebee1b9..8feeb9e5f 100644 --- a/src/core/thread/dua_manager.cpp +++ b/src/core/thread/dua_manager.cpp @@ -538,7 +538,7 @@ exit: otLogInfoDua("Sent DUA.req for DUA %s: %s", dua.ToString().AsCString(), ErrorToString(error)); } -void DuaManager::HandleDuaResponse(Coap::Message &aMessage, const Ip6::MessageInfo &aMessageInfo, Error aResult) +void DuaManager::HandleDuaResponse(Coap::Message *aMessage, const Ip6::MessageInfo *aMessageInfo, Error aResult) { OT_UNUSED_VARIABLE(aMessageInfo); Error error; @@ -552,10 +552,12 @@ void DuaManager::HandleDuaResponse(Coap::Message &aMessage, const Ip6::MessageIn } VerifyOrExit(aResult == kErrorNone, error = kErrorParse); - VerifyOrExit(aMessage.GetCode() == Coap::kCodeChanged || aMessage.GetCode() >= Coap::kCodeBadRequest, + OT_ASSERT(aMessage != nullptr); + + VerifyOrExit(aMessage->GetCode() == Coap::kCodeChanged || aMessage->GetCode() >= Coap::kCodeBadRequest, error = kErrorParse); - error = ProcessDuaResponse(aMessage); + error = ProcessDuaResponse(*aMessage); exit: if (error != kErrorResponseTimeout) diff --git a/src/core/thread/dua_manager.hpp b/src/core/thread/dua_manager.hpp index a1056350e..bc268fb86 100644 --- a/src/core/thread/dua_manager.hpp +++ b/src/core/thread/dua_manager.hpp @@ -201,10 +201,10 @@ private: static void HandleDuaResponse(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo, Error aResult) { static_cast(aContext)->HandleDuaResponse( - *static_cast(aMessage), *static_cast(aMessageInfo), aResult); + static_cast(aMessage), static_cast(aMessageInfo), aResult); } - void HandleDuaResponse(Coap::Message &aMessage, const Ip6::MessageInfo &aMessageInfo, Error aResult); + void HandleDuaResponse(Coap::Message *aMessage, const Ip6::MessageInfo *aMessageInfo, Error aResult); static void HandleDuaNotification(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo) {