diff options
author | Sigrid Solveig Haflínudóttir <ftrvxmtrx@gmail.com> | 2022-02-09 00:42:10 +0000 |
---|---|---|
committer | Sigrid Solveig Haflínudóttir <ftrvxmtrx@gmail.com> | 2022-02-09 00:42:10 +0000 |
commit | a72a4c8b91dd7e0cd644963fe2a50fb07685e4d6 (patch) | |
tree | ac32184aa07ac848c2f82d26a9a2b0dba55588d2 /sys | |
parent | 876907a5306fc8c41536403185e3cafa23a2c7ed (diff) |
audio/flacdec: handle read errors properly to avoid endless looping saturating cpu
Diffstat (limited to 'sys')
-rw-r--r-- | sys/src/cmd/audio/flacdec/flacdec.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/src/cmd/audio/flacdec/flacdec.c b/sys/src/cmd/audio/flacdec/flacdec.c index fcdd2e57a..c6c43ba0f 100644 --- a/sys/src/cmd/audio/flacdec/flacdec.c +++ b/sys/src/cmd/audio/flacdec/flacdec.c @@ -25,10 +25,11 @@ decinput(FLAC__StreamDecoder *dec, FLAC__byte buffer[], size_t *bytes, void *cli int n = *bytes; n = fread(buffer, 1, n, stdin); - if(n < 0) + if(n < 1){ + if(feof(stdin)) + return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM; return FLAC__STREAM_DECODER_READ_STATUS_ABORT; - if(n == 0) - return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM; + } *bytes = n; return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE; |