diff options
author | Bastien Nocera <hadess@users.sourceforge.net> | 2006-08-05 13:34:42 +0000 |
---|---|---|
committer | Bastien Nocera <hadess@users.sourceforge.net> | 2006-08-05 13:34:42 +0000 |
commit | 45e94a4e3640b74ceb28da94d7b867a0cab04fdb (patch) | |
tree | c8efb1dec9e1eb75cfb7d1cd9c64aa0db3cc8e02 /src/libflac/decoder_flac.c | |
parent | 1613bb97f4ec74ccf1c261ff70a475fb7834de72 (diff) | |
download | xine-lib-45e94a4e3640b74ceb28da94d7b867a0cab04fdb.tar.gz xine-lib-45e94a4e3640b74ceb28da94d7b867a0cab04fdb.tar.bz2 |
- avoid crashing when the FLAC file is broken
CVS patchset: 8164
CVS date: 2006/08/05 13:34:42
Diffstat (limited to 'src/libflac/decoder_flac.c')
-rw-r--r-- | src/libflac/decoder_flac.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libflac/decoder_flac.c b/src/libflac/decoder_flac.c index a568e27e3..b62286eaa 100644 --- a/src/libflac/decoder_flac.c +++ b/src/libflac/decoder_flac.c @@ -355,7 +355,10 @@ open_plugin (audio_decoder_class_t *class_gen, xine_stream_t *stream) { FLAC__stream_decoder_set_client_data (this->flac_decoder, this); - FLAC__stream_decoder_init (this->flac_decoder); + if (FLAC__stream_decoder_init (this->flac_decoder) == FLAC__STREAM_DECODER_SEARCH_FOR_METADATA) { + free (this); + return NULL; + } return (audio_decoder_t *) this; } |