forked from acouzens/open5gs
fix the bug M-TMSI generator
This commit is contained in:
parent
8557d50341
commit
4c8e2add2f
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue