diff --git a/src/core/coap/coap.cpp b/src/core/coap/coap.cpp index 8730c8e5a..a64d18d57 100644 --- a/src/core/coap/coap.cpp +++ b/src/core/coap/coap.cpp @@ -1302,7 +1302,7 @@ void CoapBase::ProcessReceivedRequest(Message &aMessage, const Ip6::MessageInfo { char uriPath[Message::kMaxReceivedUriPath + 1]; Message *cachedResponse = nullptr; - Error error = kErrorNotFound; + Error error = kErrorNone; #if OPENTHREAD_CONFIG_COAP_BLOCKWISE_TRANSFER_ENABLE Option::Iterator iterator; char * curUriPath = uriPath; @@ -1320,10 +1320,10 @@ void CoapBase::ProcessReceivedRequest(Message &aMessage, const Ip6::MessageInfo case kErrorNone: cachedResponse->Finish(); error = Send(*cachedResponse, aMessageInfo); - - OT_FALL_THROUGH; + ExitNow(); case kErrorNoBufs: + error = kErrorNoBufs; ExitNow(); case kErrorNotFound: @@ -1453,8 +1453,11 @@ void CoapBase::ProcessReceivedRequest(Message &aMessage, const Ip6::MessageInfo { mDefaultHandler(mDefaultHandlerContext, &aMessage, &aMessageInfo); error = kErrorNone; + ExitNow(); } + error = kErrorNotFound; + exit: if (error != kErrorNone)