diff options
author | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-06-13 15:08:17 +0200 |
---|---|---|
committer | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-06-13 15:08:17 +0200 |
commit | bf51a308a15e6735a9242d85d93afb6e4574a5c9 (patch) | |
tree | cc0a78704e6e63af092f142a8df1fd5eb8c7f868 | |
parent | 72652f73d9df50711293680e9a4b2df7630e5f16 (diff) | |
download | xine-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.c | 7 |
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) { |