decoer/dsf: fix endless loop on malformed file
When the data chunk size is not a multiple of the frame size, the last partial frame lead to an endless loop. We fix this by checking chunk_sze>=frame instead of chunk_sze>0. This way, the partial frame is simply skipped.
This commit is contained in:
parent
40280fa6cf
commit
23dce21647
1
NEWS
1
NEWS
|
@ -1,5 +1,6 @@
|
|||
ver 0.18.13 (not yet released)
|
||||
* decoder
|
||||
- dsf: fix endless loop on malformed file
|
||||
- ffmpeg: support ffmpeg/libav version 11
|
||||
|
||||
ver 0.18.12 (2014/07/30)
|
||||
|
|
|
@ -238,7 +238,7 @@ dsf_decode_chunk(Decoder &decoder, InputStream &is,
|
|||
const unsigned buffer_samples = buffer_frames * frame_size;
|
||||
const size_t buffer_size = buffer_samples * sample_size;
|
||||
|
||||
while (chunk_size > 0) {
|
||||
while (chunk_size >= frame_size) {
|
||||
/* see how much aligned data from the remaining chunk
|
||||
fits into the local buffer */
|
||||
size_t now_size = buffer_size;
|
||||
|
|
Loading…
Reference in New Issue