aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc')
-rw-r--r--openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c b/openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c
index 9ac54dabe..62bf183fa 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c
@@ -507,6 +507,9 @@ uint32_t bsc_mgcp_extract_ci(const char *str)
return ci;
}
+/**
+ * Create a new MGCPCommand based on the input and endpoint from a message
+ */
static void patch_mgcp(struct msgb *output, const char *op, const char *tok,
int endp, int len, int cr)
{
@@ -516,6 +519,11 @@ static void patch_mgcp(struct msgb *output, const char *op, const char *tok,
buf[0] = buf[39] = '\0';
ret = sscanf(tok, "%*s %s", buf);
+ if (ret != 1) {
+ LOGP(DMGCP, LOGL_ERROR,
+ "Failed to find Endpoint in: %s\n", tok);
+ return;
+ }
slen = sprintf((char *) output->l3h, "%s %s %x@mgw MGCP 1.0%s",
op, buf, endp, cr ? "\r\n" : "\n");