From b84b5f61ac36b6814fdc385d2b1eb8fc32659372 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Fri, 6 Aug 2010 08:34:46 +0800 Subject: nat: Free the endpoint when we get an empty CI. In case the BSC is sending us an empty/unused CI we have a bug, but for now let us free the endpoint and figure out which response we are getting. --- openbsc/src/nat/bsc_mgcp_utils.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/openbsc/src/nat/bsc_mgcp_utils.c b/openbsc/src/nat/bsc_mgcp_utils.c index 0455d1b05..17c4bbfa5 100644 --- a/openbsc/src/nat/bsc_mgcp_utils.c +++ b/openbsc/src/nat/bsc_mgcp_utils.c @@ -314,6 +314,13 @@ void bsc_mgcp_forward(struct bsc_connection *bsc, struct msgb *msg) } endp->ci = bsc_mgcp_extract_ci((const char *) msg->l2h); + if (endp->ci == CI_UNUSED) { + LOGP(DMGCP, LOGL_ERROR, "No CI, freeing endpoint 0x%x\n", + ENDPOINT_NUMBER(endp)); + bsc_mgcp_free_endpoint(bsc->nat, ENDPOINT_NUMBER(endp)); + mgcp_free_endp(endp); + return; + } /* free some stuff */ talloc_free(bsc_endp->transaction_id); -- cgit v1.2.3