diff --git a/src/common/binary_reader_writer.cpp b/src/common/binary_reader_writer.cpp index fcf8c3238..a20f31c5a 100644 --- a/src/common/binary_reader_writer.cpp +++ b/src/common/binary_reader_writer.cpp @@ -289,7 +289,7 @@ BinaryFileReader& BinaryFileReader::operator=(BinaryFileReader&& move) bool BinaryFileReader::IsAtEnd() { - return (FileSystem::FTell64(m_fp) == m_size); + return (!m_fp || FileSystem::FTell64(m_fp) == m_size); } bool BinaryFileReader::ReadCString(std::string* dst) diff --git a/src/core/game_list.cpp b/src/core/game_list.cpp index 903e4420b..b7b07412d 100644 --- a/src/core/game_list.cpp +++ b/src/core/game_list.cpp @@ -495,6 +495,8 @@ bool GameList::LoadOrInitializeCache(std::FILE* fp, bool invalidate_cache) WARNING_LOG("Initializing game list cache."); s_cache_map.clear(); + if (!fp) + return false; // Truncate file, and re-write header. Error error;