aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartijn van Beurden <mvanb1@gmail.com>2023-05-19 12:13:58 +0200
committerMartijn van Beurden <mvanb1@gmail.com>2023-05-20 07:29:04 +0200
commit7761f5472cd68372227b3adabc49b2e0cad843ab (patch)
tree8204d5e21d46d4b3311bcc5890dd80549d8ccc3f
parent808efb328717af811d24a8d59fdcc73f5f328b01 (diff)
downloadflac-7761f5472cd68372227b3adabc49b2e0cad843ab.tar.gz
Check for FLAC__STREAM_DECODER_ABORTED on reencoding
This status was ignored, leading to an infinite loop
-rw-r--r--src/flac/encode.c2
1 files changed, 1 insertions, 1 deletions
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);
}