Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
canghaiwuhen
OpenXG-RAN
Commits
e36aee0b
Commit
e36aee0b
authored
Jul 22, 2016
by
Frédéric Leroy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
UE: factorize calloc() calls and exit on failure
parent
dcf35b2a
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
62 additions
and
147 deletions
+62
-147
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+2
-0
cmake_targets/at_commands/CMakeLists.txt
cmake_targets/at_commands/CMakeLists.txt
+4
-1
common/utils/Makefile.inc
common/utils/Makefile.inc
+0
-59
common/utils/utils.c
common/utils/utils.c
+23
-0
common/utils/utils.h
common/utils/utils.h
+9
-0
openair3/NAS/UE/EMM/IdleMode.c
openair3/NAS/UE/EMM/IdleMode.c
+2
-5
openair3/NAS/UE/EMM/emm_main.c
openair3/NAS/UE/EMM/emm_main.c
+5
-20
openair3/NAS/UE/ESM/esm_ebr.c
openair3/NAS/UE/ESM/esm_ebr.c
+2
-6
openair3/NAS/UE/ESM/esm_main.c
openair3/NAS/UE/ESM/esm_main.c
+2
-5
openair3/NAS/UE/ESM/esm_pt.c
openair3/NAS/UE/ESM/esm_pt.c
+2
-6
openair3/NAS/UE/nas_proc.c
openair3/NAS/UE/nas_proc.c
+3
-11
openair3/NAS/UE/nas_ue_task.c
openair3/NAS/UE/nas_ue_task.c
+5
-24
openair3/NAS/UE/nas_user.c
openair3/NAS/UE/nas_user.c
+3
-10
No files found.
cmake_targets/CMakeLists.txt
View file @
e36aee0b
...
...
@@ -1757,6 +1757,7 @@ add_executable(lte-softmodem
${
OPENAIR_TARGETS
}
/ARCH/COMMON/common_lib.c
${
OPENAIR1_DIR
}
/SIMULATION/ETH_TRANSPORT/netlink_init.c
${
OPENAIR3_DIR
}
/NAS/UE/nas_ue_task.c
${
OPENAIR_DIR
}
/common/utils/utils.c
${
GTPU_need_ITTI
}
${
HW_SOURCE
}
${
TRANSPORT_SOURCE
}
...
...
@@ -1886,6 +1887,7 @@ add_executable(oaisim
${
OPENAIR2_DIR
}
/RRC/NAS/nas_config.c
${
OPENAIR2_DIR
}
/RRC/NAS/rb_config.c
${
OPENAIR3_DIR
}
/NAS/UE/nas_ue_task.c
${
OPENAIR_DIR
}
/common/utils/utils.c
${
GTPU_need_ITTI
}
${
OPENAIR_TARGETS
}
/COMMON/create_tasks.c
${
HW_SOURCE
}
...
...
cmake_targets/at_commands/CMakeLists.txt
View file @
e36aee0b
...
...
@@ -410,7 +410,6 @@ target_include_directories(emm PRIVATE
# esm LIB
################################################################################
set
(
esm_SRC
${
OPENAIR_NAS_DIR
}
/UE/ESM/esm_main.c
${
OPENAIR_NAS_DIR
}
/UE/ESM/DedicatedEpsBearerContextActivation.c
${
OPENAIR_NAS_DIR
}
/UE/ESM/DefaultEpsBearerContextActivation.c
${
OPENAIR_NAS_DIR
}
/UE/ESM/EpsBearerContextDeactivation.c
...
...
@@ -482,11 +481,13 @@ set(esm_HDR
${
OPENAIR_NAS_DIR
}
/UE/ESM/SAP/esm_recv.h
${
OPENAIR_NAS_DIR
}
/UE/ESM/SAP/esm_sap.h
${
OPENAIR_NAS_DIR
}
/UE/ESM/SAP/esm_send.h
${
OPENAIR_DIR
}
/common/utils/utils.h
)
add_library
(
esm
${
esm_SRC
}
${
esm_HDR
}
)
target_include_directories
(
esm PRIVATE
${
OPENAIR_DIR
}
/common/utils
${
OPENAIR_NAS_DIR
}
/UE
${
OPENAIR_NAS_DIR
}
/UE/API/USER
${
OPENAIR_NAS_DIR
}
/UE/ESM
...
...
@@ -673,6 +674,7 @@ target_include_directories(ies PRIVATE
################################################################################
include_directories
(
${
OPENAIR_NAS_DIR
}
/UE
${
OPENAIR_DIR
}
/common/utils
${
OPENAIR_DIR
}
/common/utils/msc
${
OPENAIR3_DIR
}
/COMMON
${
OPENAIR3_DIR
}
/SECU
...
...
@@ -694,6 +696,7 @@ ADD_EXECUTABLE(at_nas_ue ${OPENAIR_NAS_DIR}/UE/UEprocess.c
${
OPENAIR_NAS_DIR
}
/UE/nas_parser.c
${
OPENAIR_NAS_DIR
}
/UE/nas_proc.c
${
OPENAIR_NAS_DIR
}
/UE/nas_user.c
${
OPENAIR_DIR
}
/common/utils/utils.c
)
target_link_libraries
(
at_nas_ue
...
...
common/utils/Makefile.inc
deleted
100644 → 0
View file @
dcf35b2a
export
KERNEL_DIR
=
/lib/modules/
$(
shell
uname
-r
)
/
CC
=
gcc
CCC
=
gcc
linux
:=
$(
shell
if
[
`
uname
`
=
"Linux"
]
;
then
echo
"1"
;
else
echo
"0"
;
fi
)
CFLAGS
+=
-std
=
gnu99
CFLAGS
+=
-Wall
-g
-ggdb
-Wstrict-prototypes
-fno-strict-aliasing
# Need to force this option because default kernel module builder is wrong
CFLAGS
+=
$(
call
cc-option,-mpreferred-stack-boundary
=
4
)
#For performance, if some option doesn't exist in all gcc versions, use $(call cc-option,MY_OPTION)
#CFLAGS += -O2
#CFLAGS += -funroll-loops
CFLAGS
+=
-Wno-packed-bitfield-compat
# This is the minimum CPU faetures for OAI
CFLAGS
+=
-mmmx
-msse
-msse2
-mssse3
-msse4
.1
# Add CPU features from local CPU
#CFLAGS += -march=native
ifeq
($(OSTYPE),Cygwin)
cygwin
=
1
CFLAGS
+=
-DCYGWIN
else
cygwin
=
0
endif
ifeq
($(linux),1)
CFLAGS
+=
LDFLAGS
+=
endif
ITTI_DIR
=
$(COMMON_UTILS_DIR)
/itti
ITTI_OBJS
=
$(ITTI_DIR)
/intertask_interface.o
ITTI_OBJS
+=
$(ITTI_DIR)
/intertask_interface_dump.o
ITTI_OBJS
+=
$(ITTI_DIR)
/backtrace.o
ITTI_OBJS
+=
$(ITTI_DIR)
/memory_pools.o
ITTI_OBJS
+=
$(ITTI_DIR)
/signals.o
ITTI_OBJS
+=
$(ITTI_DIR)
/timer.o
HASHTABLE_DIR
=
$(COMMON_UTILS_DIR)
/collection/hashtable
MSC_DIR
=
$(COMMON_UTILS_DIR)
/msc
HASHTABLE_OBJS
=
$(HASHTABLE_DIR)
/hashtable.o
HASHTABLE_OBJS
+=
$(HASHTABLE_DIR)
/obj_hashtable.o
UTILS_OBJS
=
$(ITTI_OBJS)
$(HASHTABLE_OBJS)
UTILS_incl
=
\
-I
$(COMMON_UTILS_DIR)
\
-I
$(HASHTABLE_DIR)
\
-I
$(ITTI_DIR)
\
-I
$(MSC_DIR)
print-%
:
; @echo $* = $($*)
common/utils/utils.c
0 → 100644
View file @
e36aee0b
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include "utils.h"
void
*
calloc_or_fail
(
size_t
size
)
{
void
*
ptr
=
calloc
(
1
,
size
);
if
(
ptr
==
NULL
)
{
fprintf
(
stderr
,
"[UE] Failed to calloc %zu bytes"
,
size
);
exit
(
EXIT_FAILURE
);
}
return
ptr
;
}
void
*
malloc_or_fail
(
size_t
size
)
{
void
*
ptr
=
malloc
(
size
);
if
(
ptr
==
NULL
)
{
fprintf
(
stderr
,
"[UE] Failed to malloc %zu bytes"
,
size
);
exit
(
EXIT_FAILURE
);
}
return
ptr
;
}
common/utils/utils.h
0 → 100644
View file @
e36aee0b
#ifndef _UTILS_H
#define _UTILS_H
#include <sys/types.h>
void
*
calloc_or_fail
(
size_t
size
);
void
*
malloc_or_fail
(
size_t
size
);
#endif
openair3/NAS/UE/EMM/IdleMode.c
View file @
e36aee0b
...
...
@@ -59,6 +59,7 @@ Description Defines EMM procedures executed by the Non-Access Stratum
#include "emm_proc.h"
#include "nas_log.h"
#include "utils.h"
#include "emm_sap.h"
...
...
@@ -106,11 +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
(
1
,
sizeof
(
emm_plmn_list_t
));
if
(
emm_plmn_list
==
NULL
)
{
LOG_TRACE
(
ERROR
,
"EMM - Can't alloc emm_plmn_list"
);
exit
(
EXIT_FAILURE
);
}
emm_plmn_list_t
*
emm_plmn_list
=
calloc_or_fail
(
sizeof
(
emm_plmn_list_t
));
user
->
emm_plmn_list
=
emm_plmn_list
;
/* Initialize the list of available PLMNs */
emm_plmn_list
->
n_plmns
=
0
;
...
...
openair3/NAS/UE/EMM/emm_main.c
View file @
e36aee0b
...
...
@@ -39,6 +39,7 @@ Description Defines the EPS Mobility Management procedure call manager,
#include "emm_main.h"
#include "nas_log.h"
#include "utils.h"
#include "emmData.h"
#include "MobileIdentity.h"
#include "emm_proc_defs.h"
...
...
@@ -134,11 +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
(
1
,
sizeof
(
emm_data_t
));
if
(
user
->
emm_data
==
NULL
)
{
LOG_TRACE
(
ERROR
,
"EMM-MAIN - Failed to get allocate emm_data"
);
exit
(
EXIT_FAILURE
);
}
user
->
emm_data
=
calloc_or_fail
(
sizeof
(
emm_data_t
));
/* USIM validity indicator */
user
->
emm_data
->
usim_is_valid
=
FALSE
;
/* The IMEI read from the UE's non-volatile memory */
...
...
@@ -397,31 +394,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
(
1
,
sizeof
(
emm_timers_t
));
if
(
user
->
emm_data
->
emm_timers
==
NULL
)
{
LOG_TRACE
(
ERROR
,
"EMM-MAIN - Failed to alloc emm_timers"
);
exit
(
EXIT_FAILURE
);
}
user
->
emm_data
->
emm_timers
=
calloc_or_fail
(
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
(
1
,
sizeof
(
emm_detach_data_t
));
if
(
user
->
emm_data
->
emm_detach_data
==
NULL
)
{
LOG_TRACE
(
ERROR
,
"EMM-MAIN - Failed to alloc emm_timers"
);
exit
(
EXIT_FAILURE
);
}
user
->
emm_data
->
emm_detach_data
=
calloc_or_fail
(
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
(
1
,
sizeof
(
emm_attach_data_t
));
if
(
user
->
emm_data
->
emm_attach_data
==
NULL
)
{
LOG_TRACE
(
ERROR
,
"EMM-MAIN - Failed to alloc emm_timers"
);
exit
(
EXIT_FAILURE
);
}
user
->
emm_data
->
emm_attach_data
=
calloc_or_fail
(
sizeof
(
emm_attach_data_t
));
_emm_attach_initialize
(
user
->
emm_data
->
emm_attach_data
);
/*
...
...
openair3/NAS/UE/ESM/esm_ebr.c
View file @
e36aee0b
...
...
@@ -44,6 +44,7 @@ Description Defines functions used to handle state of EPS bearer contexts
#include "esm_ebr.h"
#include "commonDef.h"
#include "nas_log.h"
#include "utils.h"
/****************************************************************************/
...
...
@@ -115,12 +116,7 @@ esm_ebr_data_t *esm_ebr_initialize(void)
LOG_FUNC_IN
;
int
i
;
esm_ebr_data_t
*
esm_ebr_data
=
calloc
(
1
,
sizeof
(
esm_ebr_data_t
));
if
(
esm_ebr_data
==
NULL
)
{
LOG_TRACE
(
ERROR
,
"ESM-EBR - Can't malloc esm_ebr_data"
);
exit
(
EXIT_FAILURE
);
}
esm_ebr_data_t
*
esm_ebr_data
=
calloc_or_fail
(
sizeof
(
esm_ebr_data_t
));
esm_ebr_data
->
index
=
0
;
...
...
openair3/NAS/UE/ESM/esm_main.c
View file @
e36aee0b
...
...
@@ -40,6 +40,7 @@ Description Defines the EPS Session Management procedure call manager,
#include "esm_main.h"
#include "commonDef.h"
#include "nas_log.h"
#include "utils.h"
#include "emmData.h"
#include "esmData.h"
...
...
@@ -78,11 +79,7 @@ void esm_main_initialize(nas_user_t *user, esm_indication_callback_t cb)
int
i
;
esm_data_t
*
esm_data
=
calloc
(
1
,
sizeof
(
esm_data_t
));
if
(
esm_data
==
NULL
)
{
LOG_TRACE
(
ERROR
,
"ESM-MAIN - Can't malloc esm_data"
);
exit
(
EXIT_FAILURE
);
}
esm_data_t
*
esm_data
=
calloc_or_fail
(
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
));
...
...
openair3/NAS/UE/ESM/esm_pt.c
View file @
e36aee0b
...
...
@@ -42,6 +42,7 @@ Description Defines functions used to handle ESM procedure transactions.
#include "commonDef.h"
#include "nas_log.h"
#include "utils.h"
#include <stdlib.h> // malloc, free
#include <string.h> // memcpy
...
...
@@ -84,14 +85,9 @@ 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
(
1
,
sizeof
(
esm_pt_data_t
));
esm_pt_data_t
*
esm_pt_data
=
calloc
_or_fail
(
sizeof
(
esm_pt_data_t
));
int
i
;
if
(
esm_pt_data
==
NULL
)
{
LOG_TRACE
(
ERROR
,
"ESM-PT - Can't alloc esm_pt_data"
);
exit
(
EXIT_FAILURE
);
}
esm_pt_data
->
index
=
0
;
for
(
i
=
0
;
i
<
ESM_PT_DATA_SIZE
+
1
;
i
++
)
{
...
...
openair3/NAS/UE/nas_proc.c
View file @
e36aee0b
...
...
@@ -39,6 +39,7 @@ Description NAS procedure call manager
#include "nas_proc.h"
#include "nas_log.h"
#include "nas_user.h"
#include "utils.h"
#include "emm_main.h"
#include "emm_sap.h"
...
...
@@ -97,17 +98,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
(
1
,
sizeof
(
authentication_data_t
));
if
(
user
->
authentication_data
==
NULL
)
{
LOG_TRACE
(
ERROR
,
"NAS-PROC - Failed to alloc authentication_data"
);
exit
(
EXIT_FAILURE
);
}
user
->
security_data
=
calloc
(
1
,
sizeof
(
security_data_t
));
if
(
user
->
security_data
==
NULL
)
{
LOG_TRACE
(
ERROR
,
"NAS-PROC - Failed to alloc security_data"
);
exit
(
EXIT_FAILURE
);
}
user
->
authentication_data
=
calloc_or_fail
(
sizeof
(
authentication_data_t
));
user
->
security_data
=
calloc_or_fail
(
sizeof
(
security_data_t
));
/* Initialize the EMM procedure manager */
emm_main_initialize
(
user
,
emm_cb
,
imei
);
...
...
openair3/NAS/UE/nas_ue_task.c
View file @
e36aee0b
...
...
@@ -19,6 +19,7 @@
* contact@openairinterface.org
*/
#include "utils.h"
#if defined(ENABLE_ITTI)
# include "assertions.h"
# include "intertask_interface.h"
...
...
@@ -81,13 +82,7 @@ void *nas_ue_task(void *args_p)
{
/* Initialize user interface (to exchange AT commands with user process) */
{
user_api_id_t
*
user_api_id
=
calloc
(
1
,
sizeof
(
user_api_id_t
));
if
(
user_api_id
==
NULL
)
{
LOG_E
(
NAS
,
"[UE] Failed to alloc user_api_id_t"
);
exit
(
EXIT_FAILURE
);
}
user_api_id_t
*
user_api_id
=
calloc_or_fail
(
sizeof
(
user_api_id_t
));
user
->
user_api_id
=
user_api_id
;
if
(
user_api_initialize
(
user_api_id
,
NAS_PARSER_DEFAULT_USER_HOSTNAME
,
NAS_PARSER_DEFAULT_USER_PORT_NUMBER
,
NULL
,
...
...
@@ -99,23 +94,9 @@ void *nas_ue_task(void *args_p)
itti_subscribe_event_fd
(
TASK_NAS_UE
,
user_api_get_fd
(
user_api_id
));
}
user
->
user_at_commands
=
calloc
(
1
,
sizeof
(
user_at_commands_t
));
if
(
user
->
user_at_commands
==
NULL
)
{
LOG_E
(
NAS
,
"[UE %d] Can't allocate memory for user_at_commands
\n
"
,
0
);
exit
(
EXIT_FAILURE
);
}
user
->
at_response
=
calloc
(
1
,
sizeof
(
at_response_t
));
if
(
user
->
at_response
==
NULL
)
{
LOG_E
(
NAS
,
"[UE %d] Can't allocate memory for at_response
\n
"
,
0
);
exit
(
EXIT_FAILURE
);
}
user
->
lowerlayer_data
=
calloc
(
1
,
sizeof
(
lowerlayer_data_t
));
if
(
user
->
lowerlayer_data
==
NULL
)
{
LOG_E
(
NAS
,
"[UE %d] Can't allocate memory for lowerlayer_data
\n
"
,
0
);
exit
(
EXIT_FAILURE
);
}
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
));
/* Initialize NAS user */
nas_user_initialize
(
user
,
&
user_api_emm_callback
,
&
user_api_esm_callback
,
FIRMWARE_VERSION
);
...
...
openair3/NAS/UE/nas_user.c
View file @
e36aee0b
...
...
@@ -47,6 +47,7 @@ Description NAS procedure functions triggered by the user
#include "user_indication.h"
#include "nas_proc.h"
#include "nas_user.h"
#include "utils.h"
#include "user_api.h"
#include <string.h> // memset, strncpy, strncmp
...
...
@@ -158,11 +159,7 @@ void nas_user_initialize(nas_user_t *user, emm_indication_callback_t emm_cb,
{
LOG_FUNC_IN
;
user
->
nas_user_nvdata
=
calloc
(
1
,
sizeof
(
user_nvdata_t
));
if
(
user
->
nas_user_nvdata
==
NULL
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to alloc nas_user_nvdata"
);
exit
(
EXIT_FAILURE
);
}
user
->
nas_user_nvdata
=
calloc_or_fail
(
sizeof
(
user_nvdata_t
));
/* Get UE's data pathname */
char
*
path
=
memory_get_path
(
USER_NVRAM_DIRNAME
,
USER_NVRAM_FILENAME
);
...
...
@@ -179,11 +176,7 @@ void nas_user_initialize(nas_user_t *user, emm_indication_callback_t emm_cb,
}
free
(
path
);
user
->
nas_user_context
=
calloc
(
1
,
sizeof
(
nas_user_context_t
));
if
(
user
->
nas_user_context
==
NULL
)
{
LOG_TRACE
(
ERROR
,
"USR-MAIN - Failed to alloc nas_user_context"
);
exit
(
EXIT_FAILURE
);
}
user
->
nas_user_context
=
calloc_or_fail
(
sizeof
(
nas_user_context_t
));
_nas_user_context_initialize
(
user
->
nas_user_context
,
version
);
/* Initialize the internal NAS processing data */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment