From 358050cfc6cb88b5bfd3997f1e3f1e135ae808e6 Mon Sep 17 00:00:00 2001 From: N00byKing Date: Fri, 6 Apr 2018 17:06:32 +0200 Subject: core, main.h: Abort on 32Bit ROMs (#309) * core, main.h: Abort on 32Bit ROMs * main.cpp: Fix Grammar --- src/core/loader/deconstructed_rom_directory.cpp | 5 +++++ src/core/loader/loader.h | 1 + 2 files changed, 6 insertions(+) (limited to 'src/core/loader') diff --git a/src/core/loader/deconstructed_rom_directory.cpp b/src/core/loader/deconstructed_rom_directory.cpp index 8b4ee970f..8696c28bd 100644 --- a/src/core/loader/deconstructed_rom_directory.cpp +++ b/src/core/loader/deconstructed_rom_directory.cpp @@ -119,6 +119,11 @@ ResultStatus AppLoader_DeconstructedRomDirectory::Load( } metadata.Print(); + const FileSys::ProgramAddressSpaceType arch_bits{metadata.GetAddressSpaceType()}; + if (arch_bits == FileSys::ProgramAddressSpaceType::Is32Bit) { + return ResultStatus::ErrorUnsupportedArch; + } + // Load NSO modules VAddr next_load_addr{Memory::PROCESS_IMAGE_VADDR}; for (const auto& module : {"rtld", "main", "subsdk0", "subsdk1", "subsdk2", "subsdk3", diff --git a/src/core/loader/loader.h b/src/core/loader/loader.h index dd44ee9a6..b1aabb1cb 100644 --- a/src/core/loader/loader.h +++ b/src/core/loader/loader.h @@ -72,6 +72,7 @@ enum class ResultStatus { ErrorAlreadyLoaded, ErrorMemoryAllocationFailed, ErrorEncrypted, + ErrorUnsupportedArch, }; /// Interface for loading an application -- cgit v1.2.3