From 1339faa1054b405ed78cea0d821070285f4ec585 Mon Sep 17 00:00:00 2001 From: Ahmad Abdallah <50462420+Ahmad8864@users.noreply.github.com> Date: Sat, 6 Jun 2026 06:41:04 -0700 Subject: [PATCH] Fix out-of-bounds company code copy in getStatus (#225) --- lib/card/CardGciFolder.cpp | 4 ++-- lib/card/CardRawFile.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/card/CardGciFolder.cpp b/lib/card/CardGciFolder.cpp index 2fb2a20..ec4f379 100644 --- a/lib/card/CardGciFolder.cpp +++ b/lib/card/CardGciFolder.cpp @@ -223,8 +223,8 @@ ECardResult CardGciFolder::getStatus(uint32_t fileNo, CardStat& statOut) const { std::strncpy(statOut.x0_fileName, file->m_filename, 32); statOut.x20_length = file->m_blockCount * BlockSize; statOut.x24_time = file->m_modifiedTime; - memmove(statOut.x28_gameName.data(), file->m_game, 4); - memmove(statOut.x2c_company.data(), file->m_maker, 4); + memmove(statOut.x28_gameName.data(), file->m_game, statOut.x28_gameName.size()); + memmove(statOut.x2c_company.data(), file->m_maker, statOut.x2c_company.size()); statOut.x2e_bannerFormat = file->m_bannerFlags; statOut.x30_iconAddr = file->m_iconAddress; diff --git a/lib/card/CardRawFile.cpp b/lib/card/CardRawFile.cpp index cda89c6..bba3520 100644 --- a/lib/card/CardRawFile.cpp +++ b/lib/card/CardRawFile.cpp @@ -534,8 +534,8 @@ ECardResult CardRawFile::getStatus(uint32_t fileNo, CardStat& statOut) const { std::strncpy(statOut.x0_fileName, file->m_filename, 32); statOut.x20_length = file->m_blockCount * BlockSize; statOut.x24_time = file->m_modifiedTime; - memmove(statOut.x28_gameName.data(), file->m_game, 4); - memmove(statOut.x2c_company.data(), file->m_maker, 4); + memmove(statOut.x28_gameName.data(), file->m_game, statOut.x28_gameName.size()); + memmove(statOut.x2c_company.data(), file->m_maker, statOut.x2c_company.size()); statOut.x2e_bannerFormat = file->m_bannerFlags; statOut.x30_iconAddr = file->m_iconAddress;