diff options
author | Michael Niedermayer <michael@niedermayer.cc> | 2018-03-06 18:14:12 +0100 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2018-03-07 20:37:33 +0100 |
commit | da069e9c68ec1a54e618940dcb9ebae9bf179a32 (patch) | |
tree | 5f3d8f1b711410f4a65d77f28c0413728584e5b9 | |
parent | 3934aa495d786845d9f541c84ee405c096938f76 (diff) | |
download | ffmpeg-da069e9c68ec1a54e618940dcb9ebae9bf179a32.tar.gz |
avformat/oggdec: Fix metadata memleak on multiple headers
Fixes: Chromium bug 800123
Reported-by: Matt Wolenetz <wolenetz@google.com>
Reviewed-by: Matt Wolenetz <wolenetz@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r-- | libavformat/oggdec.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c index 38f60653f9..27d16a3e4e 100644 --- a/libavformat/oggdec.c +++ b/libavformat/oggdec.c @@ -128,7 +128,10 @@ static int ogg_restore(AVFormatContext *s) ogg->state = ost->next; for (i = 0; i < ogg->nstreams; i++) { - av_freep(&ogg->streams[i].buf); + struct ogg_stream *stream = &ogg->streams[i]; + av_freep(&stream->buf); + av_freep(&stream->new_metadata); + if (i >= ost->nstreams || !ost->streams[i].private) { free_stream(s, i); } |