Commit 0e4b185a authored by Martin Storsjö's avatar Martin Storsjö

Fix leaks in the AAC RTP depacketizer

Originally committed as revision 22804 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 1da1e193
......@@ -400,7 +400,11 @@ static int rtp_parse_mp4_au(RTPDemuxContext *s, const uint8_t *buf)
return -1;
infos->nb_au_headers = au_headers_length / au_header_size;
if (!infos->au_headers || infos->au_headers_allocated < infos->nb_au_headers) {
av_free(infos->au_headers);
infos->au_headers = av_malloc(sizeof(struct AUHeaders) * infos->nb_au_headers);
infos->au_headers_allocated = infos->nb_au_headers;
}
/* XXX: We handle multiple AU Section as only one (need to fix this for interleaving)
In my test, the FAAD decoder does not behave correctly when sending each AU one by one
......@@ -599,6 +603,8 @@ int rtp_parse_packet(RTPDemuxContext *s, AVPacket *pkt,
void rtp_parse_close(RTPDemuxContext *s)
{
// TODO: fold this into the protocol specific data fields.
av_free(s->rtp_payload_data->mode);
av_free(s->rtp_payload_data->au_headers);
if (!strcmp(ff_rtp_enc_name(s->payload_type), "MP2T")) {
ff_mpegts_parse_close(s->ts);
}
......
......@@ -48,6 +48,7 @@ typedef struct rtp_payload_data
int rap_flag;
int streamstate;
} *au_headers;
int au_headers_allocated;
int nb_au_headers;
int au_headers_length_bytes;
int cur_au_index;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment