summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar liamwhite2024-02-27 09:42:59 -0500
committerGravatar GitHub2024-02-27 09:42:59 -0500
commit30567a590935bcb67af67cf2892c1bbcff6e6832 (patch)
treedb59762baee45e5cddb5ae89026250c81a5c4f76
parentMerge pull request #13171 from liamwhite/fake-address (diff)
parentgeneral: fix asan errors (diff)
downloadyuzu-30567a590935bcb67af67cf2892c1bbcff6e6832.tar.gz
yuzu-30567a590935bcb67af67cf2892c1bbcff6e6832.tar.xz
yuzu-30567a590935bcb67af67cf2892c1bbcff6e6832.zip
Merge pull request #13175 from liamwhite/asan
general: fix asan errors
Diffstat (limited to '')
-rw-r--r--src/core/file_sys/fssystem/fssystem_aes_xts_storage.cpp4
-rw-r--r--src/core/hle/service/server_manager.cpp14
2 files changed, 12 insertions, 6 deletions
diff --git a/src/core/file_sys/fssystem/fssystem_aes_xts_storage.cpp b/src/core/file_sys/fssystem/fssystem_aes_xts_storage.cpp
index 022424229..efc5aa0b1 100644
--- a/src/core/file_sys/fssystem/fssystem_aes_xts_storage.cpp
+++ b/src/core/file_sys/fssystem/fssystem_aes_xts_storage.cpp
@@ -31,8 +31,8 @@ AesXtsStorage::AesXtsStorage(VirtualFile base, const void* key1, const void* key
31 ASSERT(iv_size == IvSize); 31 ASSERT(iv_size == IvSize);
32 ASSERT(Common::IsAligned(m_block_size, AesBlockSize)); 32 ASSERT(Common::IsAligned(m_block_size, AesBlockSize));
33 33
34 std::memcpy(m_key.data() + 0, key1, KeySize); 34 std::memcpy(m_key.data() + 0, key1, KeySize / 2);
35 std::memcpy(m_key.data() + 0x10, key2, KeySize); 35 std::memcpy(m_key.data() + 0x10, key2, KeySize / 2);
36 std::memcpy(m_iv.data(), iv, IvSize); 36 std::memcpy(m_iv.data(), iv, IvSize);
37 37
38 m_cipher.emplace(m_key, Core::Crypto::Mode::XTS); 38 m_cipher.emplace(m_key, Core::Crypto::Mode::XTS);
diff --git a/src/core/hle/service/server_manager.cpp b/src/core/hle/service/server_manager.cpp
index 0b41bbcb9..3d898725e 100644
--- a/src/core/hle/service/server_manager.cpp
+++ b/src/core/hle/service/server_manager.cpp
@@ -93,13 +93,19 @@ ServerManager::~ServerManager() {
93 m_threads.clear(); 93 m_threads.clear();
94 94
95 // Clean up ports. 95 // Clean up ports.
96 for (auto it = m_servers.begin(); it != m_servers.end(); it = m_servers.erase(it)) { 96 auto port_it = m_servers.begin();
97 delete std::addressof(*it); 97 while (port_it != m_servers.end()) {
98 auto* const port = std::addressof(*port_it);
99 port_it = m_servers.erase(port_it);
100 delete port;
98 } 101 }
99 102
100 // Clean up sessions. 103 // Clean up sessions.
101 for (auto it = m_sessions.begin(); it != m_sessions.end(); it = m_sessions.erase(it)) { 104 auto session_it = m_sessions.begin();
102 delete std::addressof(*it); 105 while (session_it != m_sessions.end()) {
106 auto* const session = std::addressof(*session_it);
107 session_it = m_sessions.erase(session_it);
108 delete session;
103 } 109 }
104 110
105 // Close wakeup event. 111 // Close wakeup event.