diff --git a/src/core/coap/coap_message.cpp b/src/core/coap/coap_message.cpp index f11e00416..5580e0a08 100644 --- a/src/core/coap/coap_message.cpp +++ b/src/core/coap/coap_message.cpp @@ -271,6 +271,8 @@ const otCoapOption *Message::GetNextOption(void) ExitNow(); } + VerifyOrExit(optionLength <= GetLength() - GetHelpData().mNextOptionOffset, error = OT_ERROR_PARSE); + rval = &GetHelpData().mOption; rval->mNumber += optionDelta; rval->mLength = optionLength;