diff --git a/common/utils/ocp_itti/intertask_interface.h b/common/utils/ocp_itti/intertask_interface.h index 131606f6febc3e73eccc2d253fc8328a2f9227b8..9a60f95ba9ac8752db1c3096233faa87c9ed26d9 100644 --- a/common/utils/ocp_itti/intertask_interface.h +++ b/common/utils/ocp_itti/intertask_interface.h @@ -568,8 +568,6 @@ void itti_set_task_real_time(task_id_t task_id); void itti_send_terminate_message(task_id_t task_id); void *itti_malloc(task_id_t origin_task_id, task_id_t destination_task_id, ssize_t size); -void *calloc_or_fail(size_t size); -void *malloc_or_fail(size_t size); int memory_read(const char *datafile, void *data, size_t size); int itti_free(task_id_t task_id, void *ptr); diff --git a/common/utils/utils.h b/common/utils/utils.h index 3f618b61f64956942adbe68a688b6f970f21f0c7..52f94fb3ce295e38b612c3e30a9822abc0c63e9e 100644 --- a/common/utils/utils.h +++ b/common/utils/utils.h @@ -56,23 +56,24 @@ static inline void *malloc16_clear( size_t size ) { return ptr; } - -static inline void *calloc_or_fail(size_t size) { - void *ptr = calloc(1, size); +static inline void *calloc_or_fail(size_t nmemb, size_t size) +{ + void *ptr = calloc(nmemb, size); if (ptr == NULL) { - fprintf(stderr, "[UE] Failed to calloc %zu bytes", size); + fprintf(stderr, "Failed to calloc() %zu elements of %zu bytes: out of memory", nmemb, size); exit(EXIT_FAILURE); } return ptr; } -static inline void *malloc_or_fail(size_t size) { +static inline void *malloc_or_fail(size_t size) +{ void *ptr = malloc(size); if (ptr == NULL) { - fprintf(stderr, "[UE] Failed to malloc %zu bytes", size); + fprintf(stderr, "Failed to malloc() %zu bytes: out of memory", size); exit(EXIT_FAILURE); } diff --git a/openair3/NAS/UE/EMM/IdleMode.c b/openair3/NAS/UE/EMM/IdleMode.c index 50a318355c534cd26fe69730d0b0d03e8c75fcdd..33e291931fdba4bbfe29cb42d1f20dac4267f419 100644 --- a/openair3/NAS/UE/EMM/IdleMode.c +++ b/openair3/NAS/UE/EMM/IdleMode.c @@ -107,7 +107,7 @@ static IdleMode_callback_t _emm_indication_notify; ***************************************************************************/ void IdleMode_initialize(nas_user_t *user, IdleMode_callback_t cb) { - emm_plmn_list_t *emm_plmn_list = calloc_or_fail( sizeof(emm_plmn_list_t)); + emm_plmn_list_t *emm_plmn_list = calloc_or_fail(1, sizeof(emm_plmn_list_t)); user->emm_plmn_list = emm_plmn_list; /* Initialize the list of available PLMNs */ emm_plmn_list->n_plmns = 0; diff --git a/openair3/NAS/UE/EMM/emm_main.c b/openair3/NAS/UE/EMM/emm_main.c index 74676c8b36baef3f685ba8a752a50080f7660daa..ec5babc540cd59078bd7cb00e223317d174bcfce 100644 --- a/openair3/NAS/UE/EMM/emm_main.c +++ b/openair3/NAS/UE/EMM/emm_main.c @@ -135,7 +135,7 @@ void _emm_detach_initialize(emm_detach_data_t *emm_detach) { void emm_main_initialize(nas_user_t *user, emm_indication_callback_t cb, const char *imei) { LOG_FUNC_IN; - user->emm_data = calloc_or_fail(sizeof(emm_data_t)); + user->emm_data = calloc_or_fail(1, sizeof(emm_data_t)); /* USIM validity indicator */ user->emm_data->usim_is_valid = false; /* The IMEI read from the UE's non-volatile memory */ @@ -433,19 +433,19 @@ void emm_main_initialize(nas_user_t *user, emm_indication_callback_t cb, const c /* * Initialize EMM timers */ - user->emm_data->emm_timers = calloc_or_fail(sizeof(emm_timers_t)); + user->emm_data->emm_timers = calloc_or_fail(1, sizeof(emm_timers_t)); _emm_timers_initialize(user->emm_data->emm_timers); /* * Initialize Internal data used for detach procedure */ - user->emm_data->emm_detach_data = calloc_or_fail(sizeof(emm_detach_data_t)); + user->emm_data->emm_detach_data = calloc_or_fail(1, sizeof(emm_detach_data_t)); _emm_detach_initialize(user->emm_data->emm_detach_data); /* * Initialize Internal data used for attach procedure */ - user->emm_data->emm_attach_data = calloc_or_fail(sizeof(emm_attach_data_t)); + user->emm_data->emm_attach_data = calloc_or_fail(1, sizeof(emm_attach_data_t)); _emm_attach_initialize(user->emm_data->emm_attach_data); /* diff --git a/openair3/NAS/UE/ESM/esm_ebr.c b/openair3/NAS/UE/ESM/esm_ebr.c index 4c6b56cec9a903ade5aa05b2d1d7a5b0ffdd9c36..58cd4a4056eb2129266a334a1e1eee7ab2bd0c27 100644 --- a/openair3/NAS/UE/ESM/esm_ebr.c +++ b/openair3/NAS/UE/ESM/esm_ebr.c @@ -119,7 +119,7 @@ esm_ebr_data_t *esm_ebr_initialize(void) LOG_FUNC_IN; int i; - esm_ebr_data_t *esm_ebr_data = calloc_or_fail(sizeof(esm_ebr_data_t)); + esm_ebr_data_t *esm_ebr_data = calloc_or_fail(1, sizeof(esm_ebr_data_t)); esm_ebr_data->index = 0; diff --git a/openair3/NAS/UE/ESM/esm_main.c b/openair3/NAS/UE/ESM/esm_main.c index 895e463726bf7ba2447b2d0b97c854cb94186bfb..92b8075f2435ac9c29191ba90f391263765d0152 100644 --- a/openair3/NAS/UE/ESM/esm_main.c +++ b/openair3/NAS/UE/ESM/esm_main.c @@ -79,7 +79,7 @@ void esm_main_initialize(nas_user_t *user, esm_indication_callback_t cb) int i; - esm_data_t *esm_data = calloc_or_fail(sizeof(esm_data_t)); + esm_data_t *esm_data = calloc_or_fail(1, sizeof(esm_data_t)); user->esm_data = esm_data; default_eps_bearer_context_data_t *default_eps_bearer_context = calloc(1, sizeof(default_eps_bearer_context_data_t)); diff --git a/openair3/NAS/UE/ESM/esm_pt.c b/openair3/NAS/UE/ESM/esm_pt.c index d9f593fb5718918cc45f22917e32b3811c5938a4..4c76850c94ab844e4b42eca5a5ee5e2c5801fa77 100644 --- a/openair3/NAS/UE/ESM/esm_pt.c +++ b/openair3/NAS/UE/ESM/esm_pt.c @@ -88,7 +88,7 @@ static int _esm_pt_get_available_entry(esm_pt_data_t *esm_pt_data); esm_pt_data_t *esm_pt_initialize(void) { LOG_FUNC_IN; - esm_pt_data_t *esm_pt_data = calloc_or_fail(sizeof(esm_pt_data_t)); + esm_pt_data_t *esm_pt_data = calloc_or_fail(1, sizeof(esm_pt_data_t)); int i; esm_pt_data->index = 0; diff --git a/openair3/NAS/UE/nas_proc.c b/openair3/NAS/UE/nas_proc.c index 41230696a4881a9853e4f53a821a33bfcd3de6b3..81e11c87ecfef5d1e595f61eb0dbe89e97064685 100644 --- a/openair3/NAS/UE/nas_proc.c +++ b/openair3/NAS/UE/nas_proc.c @@ -97,8 +97,8 @@ void nas_proc_initialize(nas_user_t *user, emm_indication_callback_t emm_cb, user->proc.rsrq = NAS_PROC_RSRQ_UNKNOWN; user->proc.rsrp = NAS_PROC_RSRP_UNKNOWN; - user->authentication_data = calloc_or_fail(sizeof(authentication_data_t)); - user->security_data = calloc_or_fail( sizeof(security_data_t)); + user->authentication_data = calloc_or_fail(1, sizeof(authentication_data_t)); + user->security_data = calloc_or_fail(1, sizeof(security_data_t)); /* Initialize the EMM procedure manager */ emm_main_initialize(user, emm_cb, imei); diff --git a/openair3/NAS/UE/nas_ue_task.c b/openair3/NAS/UE/nas_ue_task.c index 308d5b1f7f0832dd0545c1f80fd58416b72fd926..fbd7a1365e4c3d81da438df85b3207cd80b8196b 100644 --- a/openair3/NAS/UE/nas_ue_task.c +++ b/openair3/NAS/UE/nas_ue_task.c @@ -67,7 +67,7 @@ static bool nas_ue_process_events(nas_user_container_t *users, struct epoll_even // Initialize user api id and port number void nas_user_api_id_initialize(nas_user_t *user) { - user_api_id_t *user_api_id = calloc_or_fail(sizeof(user_api_id_t)); + user_api_id_t *user_api_id = calloc_or_fail(1, sizeof(user_api_id_t)); user->user_api_id = user_api_id; char *port = make_port_str_from_ueid(NAS_PARSER_DEFAULT_USER_PORT_NUMBER, user->ueid); if ( port == NULL ) { @@ -130,9 +130,9 @@ void *nas_ue_task(void *args_p) /* Initialize user interface (to exchange AT commands with user process) */ nas_user_api_id_initialize(user); /* allocate needed structures */ - user->user_at_commands = calloc_or_fail(sizeof(user_at_commands_t)); - user->at_response = calloc_or_fail(sizeof(at_response_t)); - user->lowerlayer_data = calloc_or_fail(sizeof(lowerlayer_data_t)); + user->user_at_commands = calloc_or_fail(1, sizeof(user_at_commands_t)); + user->at_response = calloc_or_fail(1, sizeof(at_response_t)); + user->lowerlayer_data = calloc_or_fail(1, sizeof(lowerlayer_data_t)); /* Initialize NAS user */ nas_user_initialize(user, &user_api_emm_callback, &user_api_esm_callback, FIRMWARE_VERSION); } @@ -170,9 +170,9 @@ void *nas_ue_task(void *args_p) /* Initialize user interface (to exchange AT commands with user process) */ nas_user_api_id_initialize(user); /* allocate needed structures */ - user->user_at_commands = calloc_or_fail(sizeof(user_at_commands_t)); - user->at_response = calloc_or_fail(sizeof(at_response_t)); - user->lowerlayer_data = calloc_or_fail(sizeof(lowerlayer_data_t)); + user->user_at_commands = calloc_or_fail(1, sizeof(user_at_commands_t)); + user->at_response = calloc_or_fail(1, sizeof(at_response_t)); + user->lowerlayer_data = calloc_or_fail(1, sizeof(lowerlayer_data_t)); /* Initialize NAS user */ nas_user_initialize(user, &user_api_emm_callback, &user_api_esm_callback, FIRMWARE_VERSION); user->ueid = 0; diff --git a/openair3/NAS/UE/nas_user.c b/openair3/NAS/UE/nas_user.c index ab32c216e5b97b2bf34e333f1290d0f534cead89..fba70e1db4c2be9af4d0869583c66ae7ad586bd5 100644 --- a/openair3/NAS/UE/nas_user.c +++ b/openair3/NAS/UE/nas_user.c @@ -154,7 +154,7 @@ void nas_user_initialize(nas_user_t *user, emm_indication_callback_t emm_cb, { LOG_FUNC_IN; - user->nas_user_nvdata = calloc_or_fail(sizeof(user_nvdata_t)); + user->nas_user_nvdata = calloc_or_fail(1, sizeof(user_nvdata_t)); /* Get UE data stored in the non-volatile memory device */ int rc = memory_read(user->user_nvdata_store, user->nas_user_nvdata, sizeof(user_nvdata_t)); @@ -163,7 +163,7 @@ void nas_user_initialize(nas_user_t *user, emm_indication_callback_t emm_cb, abort(); } - user->nas_user_context = calloc_or_fail(sizeof(nas_user_context_t)); + user->nas_user_context = calloc_or_fail(1, sizeof(nas_user_context_t)); _nas_user_context_initialize(user->nas_user_context, version); /* Initialize the internal NAS processing data */