diff mbox

[FFmpeg-devel] avidec: fix leaking extradata

Message ID ee43e7c9-de31-64ac-e23a-b869b5da3a41@googlemail.com
State Superseded
Headers show

Commit Message

Andreas Cadhalpun Nov. 28, 2016, 11:33 p.m. UTC
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
---
 libavformat/avidec.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Michael Niedermayer Nov. 29, 2016, 1:49 a.m. UTC | #1
On Tue, Nov 29, 2016 at 12:33:17AM +0100, Andreas Cadhalpun wrote:
> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@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

[...]
diff mbox

Patch

diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index e5a292e..97dbeae 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -770,6 +770,7 @@  FF_ENABLE_DEPRECATION_WARNINGS
                             st->codecpar->extradata_size = esize - 10 * 4;
                         } else
                             st->codecpar->extradata_size =  size - 10 * 4;
+                        av_freep(&st->codecpar->extradata);
                         if (ff_get_extradata(s, st->codecpar, pb, st->codecpar->extradata_size) < 0)
                             return AVERROR(ENOMEM);
                     }
@@ -925,6 +926,7 @@  FF_ENABLE_DEPRECATION_WARNINGS
                 st = s->streams[stream_index];
 
                 if (size<(1<<30)) {
+                    av_freep(&st->codecpar->extradata);
                     if (ff_get_extradata(s, st->codecpar, pb, size) < 0)
                         return AVERROR(ENOMEM);
                 }