diff --git a/src/core/thread/key_manager.cpp b/src/core/thread/key_manager.cpp index f86e020a4..22a63e79b 100644 --- a/src/core/thread/key_manager.cpp +++ b/src/core/thread/key_manager.cpp @@ -68,6 +68,8 @@ ThreadError KeyManager::SetMasterKey(const void *aKey, uint8_t aKeyLength) ThreadError error = kThreadError_None; VerifyOrExit(aKeyLength <= sizeof(mMasterKey), error = kThreadError_InvalidArgs); + VerifyOrExit((mMasterKeyLength != aKeyLength) || (memcmp(mMasterKey, aKey, aKeyLength) != 0), ;); + memcpy(mMasterKey, aKey, aKeyLength); mMasterKeyLength = aKeyLength; mKeySequence = 0;