From 767df0f4373a801cb7bb9156f480b6c13948476d Mon Sep 17 00:00:00 2001 From: Shu Chen Date: Fri, 26 Aug 2016 11:45:34 +0800 Subject: [PATCH] Don't reset key sequence when setting the same master key (#468) Update 'SetMasterKey()' to reset key sequence only when setting a different master key. --- src/core/thread/key_manager.cpp | 2 ++ 1 file changed, 2 insertions(+) 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;