aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2019-12-01 18:52:58 +0700
committerlaforge <laforge@osmocom.org>2019-12-02 08:44:53 +0000
commitdb4839c267cf5a133e92d93d6d12ef7513b23e62 (patch)
tree55830419b8394e9ff5451edf981cf6c1d4c64e9c
parentc6b088bf38478246455c94a63cf28961ee3e275c (diff)
libmsc: fix potential NULL-pointer dereferences detected by GCC's LTO
-rw-r--r--src/libmsc/msc_ho.c5
-rw-r--r--src/libmsc/msc_vty.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/src/libmsc/msc_ho.c b/src/libmsc/msc_ho.c
index ac7602f01..aa513eb58 100644
--- a/src/libmsc/msc_ho.c
+++ b/src/libmsc/msc_ho.c
@@ -67,9 +67,12 @@ static __attribute__((constructor)) void msc_ho_fsm_init()
void msc_ho_down_required_reject(struct msc_a *msc_a, enum gsm0808_cause cause)
{
- struct msc_i *msc_i = msc_a_msc_i(msc_a);
+ struct msc_i *msc_i;
uint32_t event;
+ msc_i = msc_a_msc_i(msc_a);
+ OSMO_ASSERT(msc_i);
+
struct ran_msg ran_enc_msg = {
.msg_type = RAN_MSG_HANDOVER_REQUIRED_REJECT,
.handover_required_reject = {
diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c
index f833585e3..cd82a07a7 100644
--- a/src/libmsc/msc_vty.c
+++ b/src/libmsc/msc_vty.c
@@ -1148,6 +1148,11 @@ static int _send_sms_str(struct vlr_subscr *receiver,
struct gsm_sms *sms;
sms = sms_from_text(receiver, sender_msisdn, 0, str);
+ if (!sms) {
+ LOGP(DLSMS, LOGL_ERROR, "Failed to allocate SMS\n");
+ return CMD_WARNING;
+ }
+
sms->protocol_id = tp_pid;
/* store in database for the queue */