diff --git a/src/core/meshcop/meshcop_tlvs.cpp b/src/core/meshcop/meshcop_tlvs.cpp index 61b803a6e..839fe1ce5 100644 --- a/src/core/meshcop/meshcop_tlvs.cpp +++ b/src/core/meshcop/meshcop_tlvs.cpp @@ -189,7 +189,7 @@ bool ChannelMaskBaseTlv::IsValid(void) const VerifyOrExit(entry != nullptr); - while (reinterpret_cast(entry) < end) + while (reinterpret_cast(entry) + sizeof(ChannelMaskEntryBase) <= end) { entry = entry->GetNext(); VerifyOrExit(reinterpret_cast(entry) <= end);