summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libflac/demux_flac.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/libflac/demux_flac.c b/src/libflac/demux_flac.c
index 94cb96c47..a2b85252e 100644
--- a/src/libflac/demux_flac.c
+++ b/src/libflac/demux_flac.c
@@ -595,8 +595,15 @@ open_plugin (demux_class_t *class_gen,
*/
this->status = DEMUX_OK;
FLAC__seekable_stream_decoder_process_until_end_of_metadata (this->flac_decoder);
-
- lprintf("Processed file until end of metadata\n");
+
+ lprintf("Processed file until end of metadata: %s\n",
+ this->status == DEMUX_OK ? "success" : "failure");
+
+ if (this->status != DEMUX_OK) {
+ FLAC__seekable_stream_decoder_delete (this->flac_decoder);
+ free (this);
+ return NULL;
+ }
return &this->demux_plugin;
}