diff --git a/src/core/file_sys/archive_artic.cpp b/src/core/file_sys/archive_artic.cpp index ee36a1cae..a4eb4a599 100644 --- a/src/core/file_sys/archive_artic.cpp +++ b/src/core/file_sys/archive_artic.cpp @@ -405,11 +405,12 @@ ResultVal ArticFileBackend::Read(u64 offset, std::size_t length, u8 return res; auto read_buff = resp->GetResponseBuffer(0); - if (!read_buff.has_value()) - return Result(-1); - size_t actually_read = read_buff->second; + size_t actually_read = 0; + if (read_buff.has_value()) { + actually_read = read_buff->second; + memcpy(buffer + read_amount, read_buff->first, actually_read); + } - memcpy(buffer + read_amount, read_buff->first, actually_read); read_amount += actually_read; if (actually_read != to_read) break; diff --git a/src/core/file_sys/artic_cache.cpp b/src/core/file_sys/artic_cache.cpp index b5c963495..1aa770e93 100644 --- a/src/core/file_sys/artic_cache.cpp +++ b/src/core/file_sys/artic_cache.cpp @@ -200,11 +200,12 @@ ResultVal ArticCache::ReadFromArtic(s32 file_handle, u8* buffer, size_t return res; auto read_buff = resp->GetResponseBuffer(0); - if (!read_buff.has_value()) - return Result(-1); - size_t actually_read = read_buff->second; + size_t actually_read = 0; + if (read_buff.has_value()) { + actually_read = read_buff->second; + memcpy(buffer + read_amount, read_buff->first, actually_read); + } - memcpy(buffer + read_amount, read_buff->first, actually_read); read_amount += actually_read; if (actually_read != to_read) break;