Check return value when calling ReadArray for savestates

Just in case we have a 0-byte file or something.
This commit is contained in:
JosJuice 2021-01-18 14:32:19 +01:00
parent 4597d53307
commit abd069ada3
1 changed files with 4 additions and 9 deletions

View File

@ -455,11 +455,7 @@ bool ReadHeader(const std::string& filename, StateHeader& header)
{
Flush();
File::IOFile f(filename, "rb");
if (!f)
return false;
f.ReadArray(&header, 1);
return true;
return f.ReadArray(&header, 1);
}
std::string GetInfoStringOfSlot(int slot, bool translate)
@ -490,15 +486,14 @@ static void LoadFileStateData(const std::string& filename, std::vector<u8>& ret_
{
Flush();
File::IOFile f(filename, "rb");
if (!f)
StateHeader header;
if (!f.ReadArray(&header, 1))
{
Core::DisplayMessage("State not found", 2000);
return;
}
StateHeader header;
f.ReadArray(&header, 1);
if (strncmp(SConfig::GetInstance().GetGameID().c_str(), header.gameID, 6))
{
Core::DisplayMessage(fmt::format("State belongs to a different game (ID {})",