From 8d4661b0f36794fe231c745a0e7e13d2ea66ee54 Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Tue, 4 Feb 2025 17:05:58 -0600 Subject: [PATCH] lsteamclient: Avoid memory leak and frequent allocation in steamclient_Steam_BGetCallback(). CW-Bug-Id: #24806 --- lsteamclient/unixlib.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lsteamclient/unixlib.cpp b/lsteamclient/unixlib.cpp index 4c63bc0e..98c962e2 100644 --- a/lsteamclient/unixlib.cpp +++ b/lsteamclient/unixlib.cpp @@ -306,13 +306,14 @@ static void (*p_Steam_NotifyMissingInterface)( int32_t, const char * ); template< typename Params > static NTSTATUS steamclient_Steam_BGetCallback( Params *params, bool wow64 ) { - u_CallbackMsg_t *u_msg = new u_CallbackMsg_t(); + u_CallbackMsg_t *u_msg, u_msg_tmp; auto *w_msg = &*params->w_msg; - if (!u_msg || !p_Steam_BGetCallback( params->pipe, u_msg, params->ignored )) + if (!p_Steam_BGetCallback( params->pipe, &u_msg_tmp, params->ignored )) params->_ret = false; else { + u_msg = new u_CallbackMsg_t(u_msg_tmp); TRACE( "id %d, u_size %d.\n", u_msg->m_iCallback, u_msg->m_cubParam ); w_msg->m_hSteamUser = u_msg->m_hSteamUser; w_msg->m_iCallback = u_msg->m_iCallback;