On Thu, May 15, 2014 at 10:29:10AM +0200, Jacob Erlbeck wrote:
Hi,
+static int set_audio_info(void *ctx, struct
mgcp_rtp_end *rtp,
+ int payload_type, const char *audio_name)
+{
...
+ talloc_free(rtp->subtype_name);
+ rtp->subtype_name = NULL;
+ talloc_free(rtp->audio_name);
+ rtp->audio_name = NULL;
...
@@ -600,29 +646,18 @@ static int parse_sdp_data(struct
mgcp_rtp_end *rtp, struct mgcp_parse_data *p)
...
+ set_audio_info(p->cfg, rtp, payload,
audio_name);
} else if (sscanf(line, "a=ptime:%d-%d",
...
+ set_audio_info(p->cfg, rtp, audio_payload,
NULL);
- endp->bts_end.payload_type =
tcfg->audio_payload;
+ set_audio_info(p->cfg, &endp->bts_end, tcfg->audio_payload,
tcfg->audio_name);
I raised this before as well. So for a
CRCX
MDCX
DLCX
procedure. We might have endp->bts_end->subtype_name still with an
allocated string. Please make reset endpoint give up all the data.