From 82ff6fb0b75af12b6656b470101553fdbf87a23c Mon Sep 17 00:00:00 2001 From: LillyJadeKatrin Date: Sun, 28 May 2023 20:51:49 -0400 Subject: [PATCH] Fix RetroAchievements Login Crash Fixing a bug with the RetroAchievements integration where certain combinations of configurations would result in a malformed API request and an attempt to dereference the null response. --- Source/Core/Core/AchievementManager.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Source/Core/Core/AchievementManager.cpp b/Source/Core/Core/AchievementManager.cpp index 81c3493dca..544af23368 100644 --- a/Source/Core/Core/AchievementManager.cpp +++ b/Source/Core/Core/AchievementManager.cpp @@ -340,9 +340,11 @@ AchievementManager::ResponseType AchievementManager::VerifyCredentials(const std .username = username.c_str(), .api_token = api_token.c_str(), .password = password.c_str()}; ResponseType r_type = Request( login_request, &login_data, rc_api_init_login_request, rc_api_process_login_response); - m_display_name = login_data.display_name; if (r_type == ResponseType::SUCCESS) + { Config::SetBaseOrCurrent(Config::RA_API_TOKEN, login_data.api_token); + m_display_name = login_data.display_name; + } rc_api_destroy_login_response(&login_data); return r_type; } @@ -648,8 +650,7 @@ AchievementManager::ResponseType AchievementManager::Request( { rc_api_request_t api_request; Common::HttpRequest http_request; - init_request(&api_request, &rc_request); - if (!api_request.post_data) + if (init_request(&api_request, &rc_request) != RC_OK || !api_request.post_data) return ResponseType::INVALID_REQUEST; auto http_response = http_request.Post(api_request.url, api_request.post_data); rc_api_destroy_request(&api_request);