From 8dfe9690c51c13d71cca6e9c3e7dfddb7d03a8de Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Tue, 5 Apr 2016 14:26:26 +0200 Subject: iu.c: check return value of ranap_parse_lai() --- openbsc/src/libiu/iu.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'openbsc') diff --git a/openbsc/src/libiu/iu.c b/openbsc/src/libiu/iu.c index 5edf22126..ea99f172d 100644 --- a/openbsc/src/libiu/iu.c +++ b/openbsc/src/libiu/iu.c @@ -157,7 +157,10 @@ static int ranap_handle_co_initial_ue(void *ctx, RANAP_InitialUE_MessageIEs_t *i uint16_t sai; struct msgb *msg = msgb_alloc(256, "RANAP->NAS"); - ranap_parse_lai(&ra_id, &ies->lai); + if (ranap_parse_lai(&ra_id, &ies->lai) != 0) { + LOGP(DRANAP, LOGL_ERROR, "Failed to parse RANAP LAI IE\n"); + return -1; + } sai = asn1str_to_u16(&ies->sai.sAC); msgb_gmmh(msg) = msgb_put(msg, ies->nas_pdu.size); memcpy(msgb_gmmh(msg), ies->nas_pdu.buf, ies->nas_pdu.size); @@ -176,7 +179,10 @@ static int ranap_handle_co_dt(void *ctx, RANAP_DirectTransferIEs_t *ies) struct msgb *msg = msgb_alloc(256, "RANAP->NAS"); if (ies->presenceMask & DIRECTTRANSFERIES_RANAP_LAI_PRESENT) { - ranap_parse_lai(&_ra_id, &ies->lai); + if (ranap_parse_lai(&_ra_id, &ies->lai) != 0) { + LOGP(DRANAP, LOGL_ERROR, "Failed to parse RANAP LAI IE\n"); + return -1; + } ra_id = &_ra_id; if (ies->presenceMask & DIRECTTRANSFERIES_RANAP_RAC_PRESENT) { _ra_id.rac = asn1str_to_u8(&ies->rac); -- cgit v1.2.3