diff options
| author | 2024-02-27 09:42:59 -0500 | |
|---|---|---|
| committer | 2024-02-27 09:42:59 -0500 | |
| commit | 30567a590935bcb67af67cf2892c1bbcff6e6832 (patch) | |
| tree | db59762baee45e5cddb5ae89026250c81a5c4f76 | |
| parent | Merge pull request #13171 from liamwhite/fake-address (diff) | |
| parent | general: fix asan errors (diff) | |
| download | yuzu-30567a590935bcb67af67cf2892c1bbcff6e6832.tar.gz yuzu-30567a590935bcb67af67cf2892c1bbcff6e6832.tar.xz yuzu-30567a590935bcb67af67cf2892c1bbcff6e6832.zip | |
Merge pull request #13175 from liamwhite/asan
general: fix asan errors
| -rw-r--r-- | src/core/file_sys/fssystem/fssystem_aes_xts_storage.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/service/server_manager.cpp | 14 |
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. |