1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 04:27:45 +00:00

LibCore: Calculate the correct seek offset for buffered streams

This commit is contained in:
Tim Schumacher 2023-01-16 15:46:59 +01:00 committed by Jelle Raaijmakers
parent caeb772894
commit bdf991fe76
2 changed files with 74 additions and 0 deletions

View file

@ -875,8 +875,12 @@ public:
virtual void close() override { m_helper.stream().close(); }
virtual ErrorOr<off_t> seek(i64 offset, SeekMode mode) override
{
if (mode == SeekMode::FromCurrentPosition)
offset = offset - m_helper.buffered_data_size();
auto result = TRY(m_helper.stream().seek(offset, mode));
m_helper.clear_buffer();
return result;
}
virtual ErrorOr<void> truncate(off_t length) override