aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openbsc/src/nat/bsc_mgcp_utils.c8
-rw-r--r--openbsc/src/nat/bsc_nat.c2
2 files changed, 9 insertions, 1 deletions
diff --git a/openbsc/src/nat/bsc_mgcp_utils.c b/openbsc/src/nat/bsc_mgcp_utils.c
index e8f7e2461..f03834264 100644
--- a/openbsc/src/nat/bsc_mgcp_utils.c
+++ b/openbsc/src/nat/bsc_mgcp_utils.c
@@ -533,11 +533,19 @@ int bsc_mgcp_nat_init(struct bsc_nat *nat)
}
/* some more MGCP config handling */
+ if (nat->mgcp_cfg->audio_name)
+ talloc_free(nat->mgcp_cfg->audio_name);
+ nat->mgcp_cfg->audio_name = NULL;
+
nat->mgcp_cfg->audio_payload = -1;
nat->mgcp_cfg->data = nat;
nat->mgcp_cfg->policy_cb = bsc_mgcp_policy_cb;
nat->mgcp_cfg->force_realloc = 1;
+
+ if (nat->mgcp_cfg->bts_ip)
+ talloc_free(nat->mgcp_cfg->bts_ip);
nat->mgcp_cfg->bts_ip = "";
+
nat->bsc_endpoints = talloc_zero_array(nat,
struct bsc_endpoint,
nat->mgcp_cfg->number_endpoints + 1);
diff --git a/openbsc/src/nat/bsc_nat.c b/openbsc/src/nat/bsc_nat.c
index e5c2c39ac..9cf3ba32f 100644
--- a/openbsc/src/nat/bsc_nat.c
+++ b/openbsc/src/nat/bsc_nat.c
@@ -1120,7 +1120,7 @@ int main(int argc, char** argv)
return -4;
}
- nat->mgcp_cfg = talloc_zero(nat, struct mgcp_config);
+ nat->mgcp_cfg = mgcp_config_alloc();
if (!nat->mgcp_cfg) {
fprintf(stderr, "Failed to allocate MGCP cfg.\n");
return -5;