Skip to content

Commit

Permalink
Fix some broken string compare logic in DLMAN
Browse files Browse the repository at this point in the history
These comparisons have a 1/999999999999999999 chance of being true. The reason for that is because GetString returns a pointer and the hardcoded string it's being compared to isn't a pointer. So comparing these is comparing pointers. So we have to use std::strcmp. It returns 0 when a match occurs.
This issue broke some uncaught things along with online player rating updating.
  • Loading branch information
poco0317 committed Jun 9, 2019
1 parent 151c76e commit 68be106
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions src/Etterna/Singletons/DownloadManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -963,7 +963,7 @@ DownloadManager::UploadScore(HighScore* hs)
}
if (d.HasMember("data") && d["data"].IsObject() &&
d["data"].HasMember("type") && d["data"]["type"].IsString() &&
d["data"]["type"].GetString() == "ssrResults") {
std::strcmp(d["data"]["type"].GetString(), "ssrResults") == 0) {
hs->AddUploadedServer(serverURL.Get());
}
};
Expand Down Expand Up @@ -1048,9 +1048,10 @@ DownloadManager::UploadScoreWithReplayData(HighScore* hs)
return;
}
}
LOG->Trace(("fasdfsdafs request response: " + req.result).c_str());
if (d.HasMember("data") && d["data"].IsObject() &&
d["data"].HasMember("type") && d["data"]["type"].IsString() &&
d["data"]["type"].GetString() == "ssrResults" &&
std::strcmp(d["data"]["type"].GetString(), "ssrResults") == 0 &&
d["data"].HasMember("attributes") &&
d["data"]["attributes"].IsObject() &&
d["data"]["attributes"].HasMember("diff") &&
Expand Down Expand Up @@ -1172,7 +1173,7 @@ DownloadManager::UploadScoreWithReplayDataFromDisk(const string& sk,
}
if (d.HasMember("data") && d["data"].IsObject() &&
d["data"].HasMember("type") && d["data"]["type"].IsString() &&
d["data"]["type"].GetString() == "ssrResults" &&
std::strcmp(d["data"]["type"].GetString(), "ssrResults") == 0 &&
d["data"].HasMember("attributes") &&
d["data"]["attributes"].IsObject() &&
d["data"]["attributes"].HasMember("diff") &&
Expand Down

0 comments on commit 68be106

Please sign in to comment.