diff --git a/src/core/thread/router_table.cpp b/src/core/thread/router_table.cpp index c5f5cfd33..1f9c5af00 100644 --- a/src/core/thread/router_table.cpp +++ b/src/core/thread/router_table.cpp @@ -241,7 +241,7 @@ Router *RouterTable::Allocate(uint8_t aRouterId) { Router *rval = NULL; - VerifyOrExit(!IsAllocated(aRouterId) && mRouterIdReuseDelay[aRouterId] == 0); + VerifyOrExit(aRouterId <= Mle::kMaxRouterId && !IsAllocated(aRouterId) && mRouterIdReuseDelay[aRouterId] == 0); mAllocatedRouterIds[aRouterId / 8] |= 1 << (aRouterId % 8); UpdateAllocation();