summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Zach Hilman2018-10-19 18:37:58 -0400
committerGravatar Zach Hilman2018-10-19 18:37:58 -0400
commit0aef2b9c26fddf40b5f5283ba846f3415c5a65a1 (patch)
tree25fa10971f64d8e18a5c712e22789aefab6bb26e /src
parentMerge pull request #1525 from ogniK5377/block-home (diff)
downloadyuzu-0aef2b9c26fddf40b5f5283ba846f3415c5a65a1.tar.gz
yuzu-0aef2b9c26fddf40b5f5283ba846f3415c5a65a1.tar.xz
yuzu-0aef2b9c26fddf40b5f5283ba846f3415c5a65a1.zip
crypto: Use compressed sizes in offset calculation for KIP decompression
Fixes a fatal crash on start when deriving keys.
Diffstat (limited to 'src')
-rw-r--r--src/core/crypto/partition_data_manager.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/crypto/partition_data_manager.cpp b/src/core/crypto/partition_data_manager.cpp
index 25cee1f3a..ed0775444 100644
--- a/src/core/crypto/partition_data_manager.cpp
+++ b/src/core/crypto/partition_data_manager.cpp
@@ -516,7 +516,8 @@ void PartitionDataManager::DecryptPackage2(const std::array<Key128, 0x20>& packa
516 out.insert(out.end(), rodata.begin(), rodata.end()); 516 out.insert(out.end(), rodata.begin(), rodata.end());
517 out.insert(out.end(), data.begin(), data.end()); 517 out.insert(out.end(), data.begin(), data.end());
518 518
519 offset += sizeof(KIPHeader) + out.size(); 519 offset += sizeof(KIPHeader) + kip.sections[0].size_compressed +
520 kip.sections[1].size_compressed + kip.sections[2].size_compressed;
520 521
521 if (name == "FS") 522 if (name == "FS")
522 package2_fs[static_cast<size_t>(type)] = std::move(out); 523 package2_fs[static_cast<size_t>(type)] = std::move(out);