Skip to content

Commit 15907eb

Browse files
Fixed possible buffer overread (#120)
Fixes the issue discovered in #109 (comment)
1 parent 0d415c0 commit 15907eb

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

src/ESP32_VS1053_Stream.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -880,12 +880,12 @@ void ESP32_VS1053_Stream::_handleLocalFile()
880880

881881
if (_remainingBytes && _file.position() < _file.size())
882882
{
883-
size_t free = xRingbufferGetCurFreeSize(_ringbuffer_handle);
883+
const size_t free = xRingbufferGetCurFreeSize(_ringbuffer_handle);
884884
if (free > 1024)
885885
{
886-
size_t toRead = min(sizeof(_localbuffer), free);
887-
size_t bytes = _file.read(_localbuffer, toRead);
888-
886+
const size_t toRead = min(sizeof(_localbuffer), free);
887+
const size_t avail = min(toRead, (size_t)_remainingBytes);
888+
const size_t bytes = _file.read(_localbuffer, avail);
889889
if (bytes)
890890
{
891891
if (xRingbufferSend(_ringbuffer_handle, _localbuffer, bytes, 0) == pdFALSE)

0 commit comments

Comments
 (0)