NetPlay: Check that memory card region is valid

This commit is contained in:
JosJuice 2021-05-07 18:19:42 +02:00
parent ff08b85740
commit ba7ad73e92
1 changed files with 7 additions and 0 deletions

View File

@ -859,6 +859,13 @@ unsigned int NetPlayClient::OnData(sf::Packet& packet)
bool mc251; bool mc251;
packet >> is_slot_a >> region >> mc251; packet >> is_slot_a >> region >> mc251;
// This check is mainly intended to filter out characters which have special meanings in paths
if (region != JAP_DIR && region != USA_DIR && region != EUR_DIR)
{
SyncSaveDataResponse(false);
return 0;
}
const std::string path = File::GetUserPath(D_GCUSER_IDX) + GC_MEMCARD_NETPLAY + const std::string path = File::GetUserPath(D_GCUSER_IDX) + GC_MEMCARD_NETPLAY +
(is_slot_a ? "A." : "B.") + region + (mc251 ? ".251" : "") + ".raw"; (is_slot_a ? "A." : "B.") + region + (mc251 ? ".251" : "") + ".raw";
if (File::Exists(path) && !File::Delete(path)) if (File::Exists(path) && !File::Delete(path))