summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-06-13 15:08:17 +0200
committerDiego 'Flameeyes' Pettenò <flameeyes@gmail.com>2007-06-13 15:08:17 +0200
commitbf51a308a15e6735a9242d85d93afb6e4574a5c9 (patch)
treecc0a78704e6e63af092f142a8df1fd5eb8c7f868
parent72652f73d9df50711293680e9a4b2df7630e5f16 (diff)
downloadxine-lib-bf51a308a15e6735a9242d85d93afb6e4574a5c9.tar.gz
xine-lib-bf51a308a15e6735a9242d85d93afb6e4574a5c9.tar.bz2
Fix leak on vorbis decoder as reported by Sander Jansen.
-rw-r--r--src/libxineadec/xine_vorbis_decoder.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libxineadec/xine_vorbis_decoder.c b/src/libxineadec/xine_vorbis_decoder.c
index ef8575949..eb0883cd9 100644
--- a/src/libxineadec/xine_vorbis_decoder.c
+++ b/src/libxineadec/xine_vorbis_decoder.c
@@ -79,8 +79,11 @@ static void vorbis_reset (audio_decoder_t *this_gen) {
vorbis_decoder_t *this = (vorbis_decoder_t *) this_gen;
- if( !this->header_count )
- vorbis_block_init(&this->vd,&this->vb);
+ if( this->header_count ) return;
+
+ /* clear block first, as it might contain allocated data */
+ vorbis_block_clear(&this->vb);
+ vorbis_block_init(&this->vd,&this->vb);
}
static void vorbis_discontinuity (audio_decoder_t *this_gen) {