hnbgw_rua: reject invalid domain indicator

Fixes: CID#135226, CID#135227
Change-Id: I0c44179aac02772585214e528207e959ad168f3c
This commit is contained in:
Neels Hofmeyr 2016-11-25 13:13:31 +01:00 committed by Harald Welte
parent e08cdd92a6
commit fe87809c92
1 changed files with 14 additions and 0 deletions

View File

@ -347,6 +347,11 @@ static int rua_rx_init_disconnect(struct msgb *msg, ANY_t *in)
case RUA_CN_DomainIndicator_ps_domain:
cn = hnb->gw->cnlink_ps;
break;
default:
LOGP(DRUA, LOGL_ERROR, "Invalid CN_DomainIndicator: %u\n",
ies.cN_DomainIndicator);
rc = -1;
goto error_free;
}
if (ies.presenceMask & DISCONNECTIES_RUA_RANAP_MESSAGE_PRESENT) {
@ -356,6 +361,8 @@ static int rua_rx_init_disconnect(struct msgb *msg, ANY_t *in)
rc = rua_to_scu(hnb, cn, OSMO_SCU_PRIM_N_DISCONNECT,
context_id, scu_cause, ranap_data, ranap_len);
error_free:
/* FIXME: what to do with the asn1c-allocated memory */
rua_free_disconnecties(&ies);
@ -386,11 +393,18 @@ static int rua_rx_init_dt(struct msgb *msg, ANY_t *in)
case RUA_CN_DomainIndicator_ps_domain:
cn = hnb->gw->cnlink_ps;
break;
default:
LOGP(DRUA, LOGL_ERROR, "Invalid CN_DomainIndicator: %u\n",
ies.cN_DomainIndicator);
rc = -1;
goto error_free;
}
rc = rua_to_scu(hnb, cn, OSMO_SCU_PRIM_N_DATA,
context_id, 0, ies.ranaP_Message.buf,
ies.ranaP_Message.size);
error_free:
/* FIXME: what to do with the asn1c-allocated memory */
rua_free_directtransferies(&ies);