fix the bug M-TMSI generator

This commit is contained in:
Sukchan Lee 2018-01-21 22:36:49 +09:00
parent 8557d50341
commit 4c8e2add2f
1 changed files with 8 additions and 4 deletions

View File

@ -2703,27 +2703,31 @@ status_t mme_m_tmsi_pool_generate()
{
status_t rv;
int i, j;
int index = 0;
d_trace(3, "M-TMSI Pool try to generate...\n");
for (i = 0; i < MAX_POOL_OF_UE; i++)
for (i = 0; index < MAX_POOL_OF_UE; i++)
{
mme_m_tmsi_t *m_tmsi = NULL;
int conflict = 0;
m_tmsi = &self.m_tmsi.pool[i];
m_tmsi = &self.m_tmsi.pool[index];
rv = core_generate_random_bytes((c_uint8_t *)m_tmsi, sizeof(*m_tmsi));
d_assert(rv == CORE_OK, return CORE_ERROR, "Cannot generate random");
for (j = 0; j < i; j++)
for (j = 0; j < index; j++)
{
if (*m_tmsi == self.m_tmsi.pool[j])
{
conflict = 1;
d_trace(3, "[M-TMSI CONFLICT] %d:0x%x == %d:0x%x\n",
index, *m_tmsi, j, self.m_tmsi.pool[j]);
break;
}
}
if (conflict == 1) continue;
index++;
}
self.m_tmsi.size = i;
self.m_tmsi.size = index;
d_trace(3, "M-TMSI Pool generate...done\n");
return CORE_OK;