From abddd6aa441b85d030f0f9c12ca326cf956063fb Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Tue, 6 May 2014 06:45:30 +0200 Subject: nat/bsc: Check proto before calling ipaccess_rcvmsg_base The code in the BSC/NAT called ipaccess_rcvmsg_base without checking if the protocol is IPA. This lead the BSC to respond to SCCP messages with an "ID ACK". From a quick look neither the code of ipaccess_rcvmsg_base in OpenBSC nor the copy of libosmo-abis ever checked the protocol header. So this code has been wrong since initially being created in 2010. --- openbsc/src/osmo-bsc/osmo_bsc_msc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'openbsc/src/osmo-bsc/osmo_bsc_msc.c') diff --git a/openbsc/src/osmo-bsc/osmo_bsc_msc.c b/openbsc/src/osmo-bsc/osmo_bsc_msc.c index 04e9cf3a7..0acc29027 100644 --- a/openbsc/src/osmo-bsc/osmo_bsc_msc.c +++ b/openbsc/src/osmo-bsc/osmo_bsc_msc.c @@ -270,11 +270,11 @@ static int ipaccess_a_fd_cb(struct osmo_fd *bfd) /* handle base message handling */ hh = (struct ipaccess_head *) msg->data; - ipaccess_rcvmsg_base(msg, bfd); /* initialize the networking. This includes sending a GSM08.08 message */ msg->cb[0] = (unsigned long) data; if (hh->proto == IPAC_PROTO_IPACCESS) { + ipaccess_rcvmsg_base(msg, bfd); if (msg->l2h[0] == IPAC_MSGT_ID_ACK) initialize_if_needed(data->msc_con); else if (msg->l2h[0] == IPAC_MSGT_ID_GET) { -- cgit v1.2.3