citra-emu
/
citra
Archived
1
0
Fork 0

filesys/ncch: prevent buffer overflow on calculating SHA256

This commit is contained in:
Weiyi Wang 2018-11-10 22:57:29 -05:00
parent a59920ed35
commit 5179915fb4
1 changed files with 3 additions and 1 deletions

View File

@ -179,7 +179,9 @@ Loader::ResultStatus NCCHContainer::Load() {
std::memcpy(input.data(), key_y_primary.data(), key_y_primary.size()); std::memcpy(input.data(), key_y_primary.data(), key_y_primary.size());
std::memcpy(input.data() + key_y_primary.size(), seed.data(), seed.size()); std::memcpy(input.data() + key_y_primary.size(), seed.data(), seed.size());
CryptoPP::SHA256 sha; CryptoPP::SHA256 sha;
sha.CalculateDigest(key_y_secondary.data(), input.data(), input.size()); std::array<u8, CryptoPP::SHA256::DIGESTSIZE> hash;
sha.CalculateDigest(hash.data(), input.data(), input.size());
std::memcpy(key_y_secondary.data(), hash.data(), key_y_secondary.size());
} }
} }