mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-07-21 22:45:45 +00:00
xts_archive: Check if the file is nullptr prior to parsing
Fixes an access violation where the file no longer exists at the specified path while being parsed.
This commit is contained in:
parent
0724e89467
commit
4a6d4ab839
1 changed files with 9 additions and 5 deletions
|
@ -70,14 +70,18 @@ NAX::NAX(VirtualFile file_, std::array<u8, 0x10> nca_id)
|
|||
NAX::~NAX() = default;
|
||||
|
||||
Loader::ResultStatus NAX::Parse(std::string_view path) {
|
||||
if (file->ReadObject(header.get()) != sizeof(NAXHeader))
|
||||
if (file == nullptr) {
|
||||
return Loader::ResultStatus::ErrorNullFile;
|
||||
}
|
||||
if (file->ReadObject(header.get()) != sizeof(NAXHeader)) {
|
||||
return Loader::ResultStatus::ErrorBadNAXHeader;
|
||||
|
||||
if (header->magic != Common::MakeMagic('N', 'A', 'X', '0'))
|
||||
}
|
||||
if (header->magic != Common::MakeMagic('N', 'A', 'X', '0')) {
|
||||
return Loader::ResultStatus::ErrorBadNAXHeader;
|
||||
|
||||
if (file->GetSize() < NAX_HEADER_PADDING_SIZE + header->file_size)
|
||||
}
|
||||
if (file->GetSize() < NAX_HEADER_PADDING_SIZE + header->file_size) {
|
||||
return Loader::ResultStatus::ErrorIncorrectNAXFileSize;
|
||||
}
|
||||
|
||||
keys.DeriveSDSeedLazy();
|
||||
std::array<Core::Crypto::Key256, 2> sd_keys{};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue