From a450ec267225baf431eefadcfacf15879256f363 Mon Sep 17 00:00:00 2001 From: Andrew Stone <a@stoney.io> Date: Tue, 8 Sep 2015 16:08:29 -0400 Subject: [PATCH] avcodec/libvorbisdec: Fix memory leak Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> --- libavcodec/libvorbisdec.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavcodec/libvorbisdec.c b/libavcodec/libvorbisdec.c index 2b22e057ecc..ecf690a5530 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) ; -- GitLab