avformat/hlsenc: fix memleak in update_variant_stream_info

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
pull/321/head^2
Steven Liu 6 years ago
parent 661a9b274b
commit d1fe1344ea
  1. 8
      libavformat/hlsenc.c

@ -2131,15 +2131,19 @@ static int update_variant_stream_info(AVFormatContext *s) {
hls->var_streams[0].nb_streams = s->nb_streams; hls->var_streams[0].nb_streams = s->nb_streams;
hls->var_streams[0].streams = av_mallocz(sizeof(AVStream *) * hls->var_streams[0].streams = av_mallocz(sizeof(AVStream *) *
hls->var_streams[0].nb_streams); hls->var_streams[0].nb_streams);
if (!hls->var_streams[0].streams) if (!hls->var_streams[0].streams) {
av_free(hls->var_streams);
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
}
//by default, the first available ccgroup is mapped to the variant stream //by default, the first available ccgroup is mapped to the variant stream
if (hls->nb_ccstreams) { if (hls->nb_ccstreams) {
hls->var_streams[0].ccgroup = av_strdup(hls->cc_streams[0].ccgroup); hls->var_streams[0].ccgroup = av_strdup(hls->cc_streams[0].ccgroup);
if (!hls->var_streams[0].ccgroup) if (!hls->var_streams[0].ccgroup) {
av_free(hls->var_streams);
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
} }
}
for (i = 0; i < s->nb_streams; i++) for (i = 0; i < s->nb_streams; i++)
hls->var_streams[0].streams[i] = s->streams[i]; hls->var_streams[0].streams[i] = s->streams[i];

Loading…
Cancel
Save