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;
|
status_t rv;
|
||||||
int i, j;
|
int i, j;
|
||||||
|
int index = 0;
|
||||||
|
|
||||||
d_trace(3, "M-TMSI Pool try to generate...\n");
|
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;
|
mme_m_tmsi_t *m_tmsi = NULL;
|
||||||
int conflict = 0;
|
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));
|
rv = core_generate_random_bytes((c_uint8_t *)m_tmsi, sizeof(*m_tmsi));
|
||||||
d_assert(rv == CORE_OK, return CORE_ERROR, "Cannot generate random");
|
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])
|
if (*m_tmsi == self.m_tmsi.pool[j])
|
||||||
{
|
{
|
||||||
conflict = 1;
|
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;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (conflict == 1) continue;
|
if (conflict == 1) continue;
|
||||||
|
index++;
|
||||||
}
|
}
|
||||||
self.m_tmsi.size = i;
|
self.m_tmsi.size = index;
|
||||||
d_trace(3, "M-TMSI Pool generate...done\n");
|
d_trace(3, "M-TMSI Pool generate...done\n");
|
||||||
|
|
||||||
return CORE_OK;
|
return CORE_OK;
|
||||||
|
|
Loading…
Reference in New Issue