diff --git a/src/core/thread/mle_router.cpp b/src/core/thread/mle_router.cpp index bf351a7da..70c871420 100644 --- a/src/core/thread/mle_router.cpp +++ b/src/core/thread/mle_router.cpp @@ -1675,7 +1675,7 @@ void MleRouter::HandleParentRequest(const Message &aMessage, const Ip6::MessageI if (child == nullptr) { - VerifyOrExit((child = mChildTable.GetNewChild()) != nullptr, OT_NOOP); + VerifyOrExit((child = mChildTable.GetNewChild()) != nullptr, error = OT_ERROR_NO_BUFS); // MAC Address child->SetExtAddress(extAddr); @@ -1996,9 +1996,14 @@ void MleRouter::SendParentResponse(Child *aChild, const Challenge &aChallenge, b exit: - if (error != OT_ERROR_NONE && message != nullptr) + if (error != OT_ERROR_NONE) { - message->Free(); + otLogWarnMle("Failed to send Parent Response: %s", otThreadErrorToString(error)); + + if (message != nullptr) + { + message->Free(); + } } }