On 29.11.2016 02:49, Michael Niedermayer wrote: > On Tue, Nov 29, 2016 at 12:33:17AM +0100, Andreas Cadhalpun wrote: >> Signed-off-by: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> >> --- >> libavformat/avidec.c | 2 ++ >> 1 file changed, 2 insertions(+) > > If previous extradata is freed it should probably print a warning or > error out
That's a good idea, updated patch is attached. Best regards, Andreas
>From e6a4fc92a99e2e3789730e8e122b39255d186c1f Mon Sep 17 00:00:00 2001 From: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> Date: Tue, 29 Nov 2016 00:28:55 +0100 Subject: [PATCH] avidec: fix leaking extradata Signed-off-by: Andreas Cadhalpun <andreas.cadhal...@googlemail.com> --- libavformat/avidec.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavformat/avidec.c b/libavformat/avidec.c index e5a292e..d465965 100644 --- a/libavformat/avidec.c +++ b/libavformat/avidec.c @@ -770,6 +770,10 @@ FF_ENABLE_DEPRECATION_WARNINGS st->codecpar->extradata_size = esize - 10 * 4; } else st->codecpar->extradata_size = size - 10 * 4; + if (st->codecpar->extradata) { + av_log(s, AV_LOG_WARNING, "New extradata in strf chunk, freeing previous one.\n"); + av_freep(&st->codecpar->extradata); + } if (ff_get_extradata(s, st->codecpar, pb, st->codecpar->extradata_size) < 0) return AVERROR(ENOMEM); } @@ -925,6 +929,10 @@ FF_ENABLE_DEPRECATION_WARNINGS st = s->streams[stream_index]; if (size<(1<<30)) { + if (st->codecpar->extradata) { + av_log(s, AV_LOG_WARNING, "New extradata in strd chunk, freeing previous one.\n"); + av_freep(&st->codecpar->extradata); + } if (ff_get_extradata(s, st->codecpar, pb, size) < 0) return AVERROR(ENOMEM); } -- 2.10.2
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel