[router-table] avoid out-of-bound access (#2704)

This commit is contained in:
Jonathan Hui
2018-05-14 16:30:56 -07:00
committed by GitHub
parent 4d6f5a7c4f
commit 9c59d032f3
+9 -10
View File
@@ -166,19 +166,18 @@ void RouterTable::UpdateAllocation(void)
// fix replaced entries
for (uint8_t i = 0; i <= Mle::kMaxRouterId; i++)
{
uint8_t index = indexMap[i];
Router &router = mRouters[index];
uint8_t index = indexMap[i];
if (index == Mle::kInvalidRouterId)
if (index != Mle::kInvalidRouterId)
{
continue;
}
Router &router = mRouters[index];
if (router.GetRouterId() != i)
{
memset(&router, 0, sizeof(router));
router.SetRloc16(Mle::Mle::GetRloc16(i));
router.SetNextHop(Mle::kInvalidRouterId);
if (router.GetRouterId() != i)
{
memset(&router, 0, sizeof(router));
router.SetRloc16(Mle::Mle::GetRloc16(i));
router.SetNextHop(Mle::kInvalidRouterId);
}
}
}