diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/host/layer23/src/mobile/gsm48_rr.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/host/layer23/src/mobile/gsm48_rr.c b/src/host/layer23/src/mobile/gsm48_rr.c index ffabde94..78c99310 100644 --- a/src/host/layer23/src/mobile/gsm48_rr.c +++ b/src/host/layer23/src/mobile/gsm48_rr.c @@ -1451,7 +1451,7 @@ int gsm48_rr_tx_rand_acc(struct osmocom_ms *ms, struct msgb *msg) if (cs->ccch_state != GSM322_CCCH_ST_DATA) { LOGP(DRR, LOGL_INFO, "CCCH channel activation failed.\n"); - +fail: if (rr->rr_est_req) { struct msgb *msg = gsm48_rr_msgb_alloc(GSM48_RR_REL_IND); @@ -1470,6 +1470,11 @@ int gsm48_rr_tx_rand_acc(struct osmocom_ms *ms, struct msgb *msg) return 0; } + if (!s || !s->si3 || !s->tx_integer) { + LOGP(DRR, LOGL_NOTICE, "Not enough SYSINFO\n"); + goto fail; + } + if (rr->state == GSM48_RR_ST_IDLE) { LOGP(DRR, LOGL_INFO, "MM already released RR.\n"); |