From 2d712c28c2d7a619ed76f4415f8efbb93173a85a Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Tue, 6 Dec 2016 13:29:45 -0800 Subject: [PATCH] Remove assert from ReleaseRouterId(). (#1045) --- src/core/thread/mle_router.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/core/thread/mle_router.cpp b/src/core/thread/mle_router.cpp index 2e7e5cd38..b7d49e9ec 100644 --- a/src/core/thread/mle_router.cpp +++ b/src/core/thread/mle_router.cpp @@ -172,9 +172,11 @@ exit: ThreadError MleRouter::ReleaseRouterId(uint8_t aRouterId) { + ThreadError error = kThreadError_None; Router *router = GetRouter(aRouterId); - assert(router != NULL); + VerifyOrExit(router != NULL, error = kThreadError_InvalidArgs); + VerifyOrExit(mDeviceState == kDeviceStateLeader, error = kThreadError_InvalidState); otLogInfoMle("delete router id %d", aRouterId); router->mAllocated = false; @@ -196,7 +198,9 @@ ThreadError MleRouter::ReleaseRouterId(uint8_t aRouterId) mAddressResolver.Remove(aRouterId); mNetworkData.RemoveBorderRouter(GetRloc16(aRouterId)); ResetAdvertiseInterval(); - return kThreadError_None; + +exit: + return error; } uint32_t MleRouter::GetLeaderAge(void) const