Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
WiiSave: protect against a stack buffer overflow
  • Loading branch information
shuffle2 committed Aug 6, 2022
1 parent 3595c8b commit 3ca673a
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions Source/Core/Core/HW/WiiSave.cpp
Expand Up @@ -104,14 +104,21 @@ class NandStorage final : public Storage
if (!m_uid || !m_gid)
return {};

const auto banner = m_fs->OpenFile(*m_uid, *m_gid, m_data_dir + "/banner.bin", FS::Mode::Read);
const auto banner_path = m_data_dir + "/banner.bin";
const auto banner = m_fs->OpenFile(*m_uid, *m_gid, banner_path, FS::Mode::Read);
if (!banner)
return {};
Header header{};
header.banner_size = banner->GetStatus()->size;
if (header.banner_size > sizeof(header.banner))
{
ERROR_LOG_FMT(CORE, "NandStorage::ReadHeader: {} corrupted banner_size: {:x}", banner_path,
header.banner_size);
return {};
}
header.tid = m_tid;
header.md5 = s_md5_blanker;
const u8 mode = GetBinMode(m_data_dir + "/banner.bin");
const u8 mode = GetBinMode(banner_path);
if (!mode || !banner->Read(header.banner, header.banner_size))
return {};
header.permissions = mode;
Expand Down

0 comments on commit 3ca673a

Please sign in to comment.