From 7761f5472cd68372227b3adabc49b2e0cad843ab Mon Sep 17 00:00:00 2001 From: Martijn van Beurden Date: Fri, 19 May 2023 12:13:58 +0200 Subject: [PATCH] Check for FLAC__STREAM_DECODER_ABORTED on reencoding This status was ignored, leading to an infinite loop --- src/flac/encode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/flac/encode.c b/src/flac/encode.c index b8f5207a..399956d9 100644 --- a/src/flac/encode.c +++ b/src/flac/encode.c @@ -1403,7 +1403,7 @@ int flac__encode_file(FILE *infile, FLAC__off_t infilesize, const char *infilena break; } - if(!FLAC__stream_decoder_process_single(encoder_session.fmt.flac.decoder)) { + if(decoder_state == FLAC__STREAM_DECODER_ABORTED || !FLAC__stream_decoder_process_single(encoder_session.fmt.flac.decoder)) { flac__utils_printf(stderr, 1, "%s: ERROR: while decoding FLAC input, state = %s\n", encoder_session.inbasefilename, FLAC__stream_decoder_get_resolved_state_string(encoder_session.fmt.flac.decoder)); return EncoderSession_finish_error(&encoder_session); }