mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-20 11:36:10 +00:00
LibCore: FileStream.h: Fix infinite loop when trying to read past end-of-file.
This commit is contained in:
parent
612c1bc84d
commit
b9a6c07bb7
Notes:
sideshowbarker
2024-07-19 02:53:55 +09:00
Author: https://github.com/asynts Commit: https://github.com/SerenityOS/serenity/commit/b9a6c07bb79 Pull-request: https://github.com/SerenityOS/serenity/pull/3405
1 changed files with 6 additions and 7 deletions
|
@ -65,16 +65,15 @@ public:
|
|||
|
||||
size_t read(Bytes bytes) override
|
||||
{
|
||||
size_t nread = 0;
|
||||
auto nread = m_buffered.bytes().copy_trimmed_to(bytes);
|
||||
|
||||
if (!m_buffered.is_empty()) {
|
||||
nread += m_buffered.bytes().copy_trimmed_to(bytes);
|
||||
m_buffered.bytes().slice(nread, m_buffered.size() - nread).copy_to(m_buffered);
|
||||
m_buffered.trim(m_buffered.size() - nread);
|
||||
|
||||
m_buffered.bytes().slice(nread).copy_to(m_buffered);
|
||||
m_buffered.trim(m_buffered.size() - nread);
|
||||
}
|
||||
while (nread < bytes.size()) {
|
||||
if (m_file->eof())
|
||||
return nread;
|
||||
|
||||
while (nread < bytes.size() && !eof()) {
|
||||
if (m_file->has_error()) {
|
||||
set_fatal_error();
|
||||
return 0;
|
||||
|
|
Loading…
Add table
Reference in a new issue