diff options
author | Darren Salt <devspam@moreofthesa.me.uk> | 2012-06-09 17:09:49 +0100 |
---|---|---|
committer | Darren Salt <devspam@moreofthesa.me.uk> | 2012-06-09 17:09:49 +0100 |
commit | 7d997a77166b94aea43afbbc252f1aa0af00a7fa (patch) | |
tree | c1b968ed0063679f6a1731f3ebc86e9aefe27a5c | |
parent | 4edc2d3b758cb4348cfe2115707be54d71f5fce8 (diff) | |
download | xine-lib-7d997a77166b94aea43afbbc252f1aa0af00a7fa.tar.gz xine-lib-7d997a77166b94aea43afbbc252f1aa0af00a7fa.tar.bz2 |
Double-free with some AAC files (missing check).
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | src/libfaad/xine_faad_decoder.c | 6 |
2 files changed, 5 insertions, 2 deletions
@@ -1,4 +1,5 @@ xine-lib (1.1.21) ????-??-?? + * Fix a potential double-free (goom) when playing AAC files. * Fix matroska header compression. * MPEG-TS fixes and enhancements * Improved syncing of DVB subtitles diff --git a/src/libfaad/xine_faad_decoder.c b/src/libfaad/xine_faad_decoder.c index 86dc7d6d3..af0c6f967 100644 --- a/src/libfaad/xine_faad_decoder.c +++ b/src/libfaad/xine_faad_decoder.c @@ -249,8 +249,10 @@ static void faad_decode_audio ( faad_decoder_t *this, int end_frame ) { lprintf("faacDecDecode() returned rate=%"PRId32" channels=%d used=%d\n", this->rate, this->num_channels, used); - this->stream->audio_out->close (this->stream->audio_out, this->stream); - this->output_open = 0; + if (this->output_open) { + this->stream->audio_out->close (this->stream->audio_out, this->stream); + this->output_open = 0; + } faad_open_output( this ); faad_meta_info_set( this ); |