diff options
| author | Alex Parrill <[email protected]> | 2019-06-08 17:56:01 -0400 |
|---|---|---|
| committer | Matthew Collins <[email protected]> | 2019-06-09 23:50:11 +0100 |
| commit | b93f00c71f64b4b6f2296f626f6c5d6d5390d51e (patch) | |
| tree | a98c9516fb03f13f286b68f8b8f2b69e65d92827 /src | |
| parent | Fix QueryResults possibly outliving the steam client by limiting it to the ca... (diff) | |
| download | steamworks-rs-b93f00c71f64b4b6f2296f626f6c5d6d5390d51e.tar.xz steamworks-rs-b93f00c71f64b4b6f2296f626f6c5d6d5390d51e.zip | |
Fix Query handle leaking on errors
Diffstat (limited to 'src')
| -rw-r--r-- | src/ugc.rs | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -370,16 +370,19 @@ impl <Manager> UserListQuery<Manager> { register_call_result::<sys::SteamUGCQueryCompleted_t, _, _>( &inner, api_call, CALLBACK_BASE_ID + 1, move |v, io_error| { + let ugc = sys::steam_rust_get_ugc(); if io_error { + sys::SteamAPI_ISteamUGC_ReleaseQueryUGCRequest(ugc, handle); cb(Err(SteamError::IOFailure)); return; } else if v.m_eResult != sys::EResult::EResultOK { + sys::SteamAPI_ISteamUGC_ReleaseQueryUGCRequest(ugc, handle); cb(Err(v.m_eResult.into())); return; } let result = QueryResults { - ugc: sys::steam_rust_get_ugc(), + ugc, handle, num_results_returned: v.m_unNumResultsReturned, num_results_total: v.m_unTotalMatchingResults, |