Merge pull request #1529 from DarkLordZach/key-derivation-crash

crypto: Use compressed sizes in offset calculation for KIP decompression
This commit is contained in:
Mat M 2018-10-19 18:39:00 -04:00 committed by GitHub
commit c91be25b93
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 2 additions and 1 deletions

View File

@ -516,7 +516,8 @@ void PartitionDataManager::DecryptPackage2(const std::array<Key128, 0x20>& packa
out.insert(out.end(), rodata.begin(), rodata.end()); out.insert(out.end(), rodata.begin(), rodata.end());
out.insert(out.end(), data.begin(), data.end()); out.insert(out.end(), data.begin(), data.end());
offset += sizeof(KIPHeader) + out.size(); offset += sizeof(KIPHeader) + kip.sections[0].size_compressed +
kip.sections[1].size_compressed + kip.sections[2].size_compressed;
if (name == "FS") if (name == "FS")
package2_fs[static_cast<size_t>(type)] = std::move(out); package2_fs[static_cast<size_t>(type)] = std::move(out);