diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index 71ee8d0e2..30d7d66a9 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -5085,6 +5085,8 @@ void Mle::Attacher::HandleParentResponse(RxInfo &aRxInfo) Log(kMessageReceive, kTypeParentResponse, aRxInfo.mMessageInfo.GetPeerAddr(), sourceAddress); + VerifyOrExit(mState != kStateChildIdRequest, error = kErrorInvalidState); + SuccessOrExit(error = aRxInfo.mMessage.ReadVersionTlv(version)); SuccessOrExit(error = aRxInfo.mMessage.ReadAndMatchResponseTlvWith(mParentRequestChallenge));