| @@ -31,8 +31,8 @@ AesXtsStorage::AesXtsStorage(VirtualFile base, const void* key1, const void* key | ||||
|     ASSERT(iv_size == IvSize); | ||||
|     ASSERT(Common::IsAligned(m_block_size, AesBlockSize)); | ||||
|  | ||||
|     std::memcpy(m_key.data() + 0, key1, KeySize); | ||||
|     std::memcpy(m_key.data() + 0x10, key2, KeySize); | ||||
|     std::memcpy(m_key.data() + 0, key1, KeySize / 2); | ||||
|     std::memcpy(m_key.data() + 0x10, key2, KeySize / 2); | ||||
|     std::memcpy(m_iv.data(), iv, IvSize); | ||||
|  | ||||
|     m_cipher.emplace(m_key, Core::Crypto::Mode::XTS); | ||||
|   | ||||
| @@ -93,13 +93,19 @@ ServerManager::~ServerManager() { | ||||
|     m_threads.clear(); | ||||
|  | ||||
|     // Clean up ports. | ||||
|     for (auto it = m_servers.begin(); it != m_servers.end(); it = m_servers.erase(it)) { | ||||
|         delete std::addressof(*it); | ||||
|     auto port_it = m_servers.begin(); | ||||
|     while (port_it != m_servers.end()) { | ||||
|         auto* const port = std::addressof(*port_it); | ||||
|         port_it = m_servers.erase(port_it); | ||||
|         delete port; | ||||
|     } | ||||
|  | ||||
|     // Clean up sessions. | ||||
|     for (auto it = m_sessions.begin(); it != m_sessions.end(); it = m_sessions.erase(it)) { | ||||
|         delete std::addressof(*it); | ||||
|     auto session_it = m_sessions.begin(); | ||||
|     while (session_it != m_sessions.end()) { | ||||
|         auto* const session = std::addressof(*session_it); | ||||
|         session_it = m_sessions.erase(session_it); | ||||
|         delete session; | ||||
|     } | ||||
|  | ||||
|     // Close wakeup event. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 liamwhite
					liamwhite