From 375815c5ba222b956bd83e265f9a6ee3fc6b1902 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Thu, 16 Jan 2025 11:14:24 +0100 Subject: [PATCH] lsteamclient: Delete unix allocated object if no server list request is returned. --- lsteamclient/unix_steam_matchmaking_manual.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lsteamclient/unix_steam_matchmaking_manual.cpp b/lsteamclient/unix_steam_matchmaking_manual.cpp index d9f3cbed..33513305 100644 --- a/lsteamclient/unix_steam_matchmaking_manual.cpp +++ b/lsteamclient/unix_steam_matchmaking_manual.cpp @@ -303,7 +303,8 @@ static NTSTATUS ISteamMatchmakingServers_RequestInternetServerList( Iface *iface { SteamMatchmakingServerListResponse_106 *u_response = create_LinuxISteamMatchmakingServerListResponse_106( params->pRequestServersResponse ); params->_ret = iface->RequestInternetServerList( params->iApp, params->ppchFilters, params->nFilters, u_response ); - u_response->add_request( params->_ret ); + if (!params->_ret) delete u_response; + else u_response->add_request( params->_ret ); return 0; } @@ -312,7 +313,8 @@ static NTSTATUS ISteamMatchmakingServers_RequestLANServerList( Iface *iface, Par { SteamMatchmakingServerListResponse_106 *u_response = create_LinuxISteamMatchmakingServerListResponse_106( params->pRequestServersResponse ); params->_ret = iface->RequestLANServerList( params->iApp, u_response ); - u_response->add_request( params->_ret ); + if (!params->_ret) delete u_response; + else u_response->add_request( params->_ret ); return 0; } @@ -321,7 +323,8 @@ static NTSTATUS ISteamMatchmakingServers_RequestFriendsServerList( Iface *iface, { SteamMatchmakingServerListResponse_106 *u_response = create_LinuxISteamMatchmakingServerListResponse_106( params->pRequestServersResponse ); params->_ret = iface->RequestFriendsServerList( params->iApp, params->ppchFilters, params->nFilters, u_response ); - u_response->add_request( params->_ret ); + if (!params->_ret) delete u_response; + else u_response->add_request( params->_ret ); return 0; } @@ -330,7 +333,8 @@ static NTSTATUS ISteamMatchmakingServers_RequestFavoritesServerList( Iface *ifac { SteamMatchmakingServerListResponse_106 *u_response = create_LinuxISteamMatchmakingServerListResponse_106( params->pRequestServersResponse ); params->_ret = iface->RequestFavoritesServerList( params->iApp, params->ppchFilters, params->nFilters, u_response ); - u_response->add_request( params->_ret ); + if (!params->_ret) delete u_response; + else u_response->add_request( params->_ret ); return 0; } @@ -339,7 +343,8 @@ static NTSTATUS ISteamMatchmakingServers_RequestHistoryServerList( Iface *iface, { SteamMatchmakingServerListResponse_106 *u_response = create_LinuxISteamMatchmakingServerListResponse_106( params->pRequestServersResponse ); params->_ret = iface->RequestHistoryServerList( params->iApp, params->ppchFilters, params->nFilters, u_response ); - u_response->add_request( params->_ret ); + if (!params->_ret) delete u_response; + else u_response->add_request( params->_ret ); return 0; } @@ -348,7 +353,8 @@ static NTSTATUS ISteamMatchmakingServers_RequestSpectatorServerList( Iface *ifac { SteamMatchmakingServerListResponse_106 *u_response = create_LinuxISteamMatchmakingServerListResponse_106( params->pRequestServersResponse ); params->_ret = iface->RequestSpectatorServerList( params->iApp, params->ppchFilters, params->nFilters, u_response ); - u_response->add_request( params->_ret ); + if (!params->_ret) delete u_response; + else u_response->add_request( params->_ret ); return 0; }