diff --git a/openair3/NAS/UE/nas_ue_task.c b/openair3/NAS/UE/nas_ue_task.c index 58e38fdbc2066433a829125d16fb8c7137299a94..2a42b38a7248a3bfe24eea3bae51b9d958b76a4d 100644 --- a/openair3/NAS/UE/nas_ue_task.c +++ b/openair3/NAS/UE/nas_ue_task.c @@ -271,6 +271,9 @@ void *nas_ue_task(void *args_p) } } } + + free(users); + return NULL; } nas_user_t *find_user_from_fd(nas_user_container_t *users, int fd) { diff --git a/targets/COMMON/create_tasks.c b/targets/COMMON/create_tasks.c index d786cde511f8bd8278ff6b40b29b59f384a0f350..c28b9e839c4377755498fc5a1a87e5cef27b78b2 100644 --- a/targets/COMMON/create_tasks.c +++ b/targets/COMMON/create_tasks.c @@ -85,9 +85,10 @@ int create_tasks(uint32_t enb_nb, uint32_t ue_nb) # if defined(NAS_BUILT_IN_UE) if (ue_nb > 0) { - nas_user_container_t users; - users.count = ue_nb; - if (itti_create_task (TASK_NAS_UE, nas_ue_task, &users) < 0) { + nas_user_container_t *users = calloc(1, sizeof(*users)); + if (users == NULL) abort(); + users->count = ue_nb; + if (itti_create_task (TASK_NAS_UE, nas_ue_task, users) < 0) { LOG_E(NAS, "Create task for NAS UE failed\n"); return -1; }