From f7d46d38fafa114d7c784dbdc24d9382a0a0ba32 Mon Sep 17 00:00:00 2001 From: hexkyz Date: Fri, 21 Aug 2026 23:13:40 +0100 Subject: [PATCH] meso: only increment send/recv/exch on success --- .../libmesosphere/source/kern_k_session_request.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libraries/libmesosphere/source/kern_k_session_request.cpp b/libraries/libmesosphere/source/kern_k_session_request.cpp index deb1619d5..a40611949 100644 --- a/libraries/libmesosphere/source/kern_k_session_request.cpp +++ b/libraries/libmesosphere/source/kern_k_session_request.cpp @@ -44,16 +44,19 @@ namespace ams::kern { Result KSessionRequest::SessionMappings::PushSend(KProcessAddress client, KProcessAddress server, size_t size, KMemoryState state) { MESOSPHERE_ASSERT(m_num_recv == 0); MESOSPHERE_ASSERT(m_num_exch == 0); - R_RETURN(this->PushMap(client, server, size, state, m_num_send++)); + ON_RESULT_SUCCESS { ++m_num_send; }; + R_RETURN(this->PushMap(client, server, size, state, m_num_send)); } Result KSessionRequest::SessionMappings::PushReceive(KProcessAddress client, KProcessAddress server, size_t size, KMemoryState state) { MESOSPHERE_ASSERT(m_num_exch == 0); - R_RETURN(this->PushMap(client, server, size, state, m_num_send + m_num_recv++)); + ON_RESULT_SUCCESS { ++m_num_recv; }; + R_RETURN(this->PushMap(client, server, size, state, m_num_send + m_num_recv)); } Result KSessionRequest::SessionMappings::PushExchange(KProcessAddress client, KProcessAddress server, size_t size, KMemoryState state) { - R_RETURN(this->PushMap(client, server, size, state, m_num_send + m_num_recv + m_num_exch++)); + ON_RESULT_SUCCESS { ++m_num_exch; }; + R_RETURN(this->PushMap(client, server, size, state, m_num_send + m_num_recv + m_num_exch)); } void KSessionRequest::SessionMappings::Finalize() {