Skip to content

Commit

Permalink
Fix file_view::read_at and file_view::get_stat
Browse files Browse the repository at this point in the history
  • Loading branch information
elad335 committed Nov 28, 2023
1 parent 0a15ab5 commit 5715f20
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions rpcs3/Emu/Cell/PPUThread.cpp
Expand Up @@ -3541,7 +3541,10 @@ namespace

fs::stat_t get_stat() override
{
return m_file.get_stat();
fs::stat_t stat = m_file.get_stat();
stat.size = std::min<u64>(utils::sub_saturate<u64>(stat.size, m_off), m_max_size);
stat.is_writable = false;
return stat;
}

bool trunc(u64) override
Expand All @@ -3558,7 +3561,7 @@ namespace

u64 read_at(u64 offset, void* buffer, u64 size) override
{
return m_file.read_at(offset + m_off, buffer, std::min<u64>(size, utils::sub_saturate<u64>(m_max_size, m_pos)));
return m_file.read_at(offset + m_off, buffer, std::min<u64>(size, utils::sub_saturate<u64>(m_max_size, offset)));
}

u64 write(const void*, u64) override
Expand All @@ -3585,7 +3588,7 @@ namespace

u64 size() override
{
return m_file.size();
return std::min<u64>(utils::sub_saturate<u64>(m_file.size(), m_off), m_max_size);
}
};
}
Expand Down

0 comments on commit 5715f20

Please sign in to comment.