ffmpeg | branch: master | Andrew Stone <a...@stoney.io> | Tue Sep  8 16:08:29 
2015 -0400| [a450ec267225baf431eefadcfacf15879256f363] | committer: Michael 
Niedermayer

avcodec/libvorbisdec: Fix memory leak

Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a450ec267225baf431eefadcfacf15879256f363
---

 libavcodec/libvorbisdec.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/libavcodec/libvorbisdec.c b/libavcodec/libvorbisdec.c
index 2b22e05..ecf690a 100644
--- a/libavcodec/libvorbisdec.c
+++ b/libavcodec/libvorbisdec.c
@@ -32,6 +32,8 @@ typedef struct OggVorbisDecContext {
     ogg_packet op;                      /**< ogg packet                     */
 } OggVorbisDecContext;
 
+static int oggvorbis_decode_close(AVCodecContext *avccontext);
+
 static int oggvorbis_decode_init(AVCodecContext *avccontext) {
     OggVorbisDecContext *context = avccontext->priv_data ;
     uint8_t *p= avccontext->extradata;
@@ -110,8 +112,7 @@ static int oggvorbis_decode_init(AVCodecContext 
*avccontext) {
     return 0 ;
 
   error:
-    vorbis_info_clear(&context->vi);
-    vorbis_comment_clear(&context->vc) ;
+    oggvorbis_decode_close(avccontext);
     return ret;
 }
 
@@ -187,6 +188,8 @@ static int oggvorbis_decode_frame(AVCodecContext 
*avccontext, void *data,
 static int oggvorbis_decode_close(AVCodecContext *avccontext) {
     OggVorbisDecContext *context = avccontext->priv_data ;
 
+    vorbis_block_clear(&context->vb);
+    vorbis_dsp_clear(&context->vd);
     vorbis_info_clear(&context->vi) ;
     vorbis_comment_clear(&context->vc) ;
 

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

Reply via email to