elf: Check if machine is ARM.
This commit is contained in:
		@@ -364,12 +364,19 @@ SectionID ElfReader::GetSectionByName(const char* name, int firstSection) const
 | 
			
		||||
namespace Loader {
 | 
			
		||||
 | 
			
		||||
FileType AppLoader_ELF::IdentifyType(FileUtil::IOFile& file) {
 | 
			
		||||
    u32 magic;
 | 
			
		||||
    static constexpr u16 ELF_MACHINE_ARM{0x28};
 | 
			
		||||
 | 
			
		||||
    u32 magic = 0;
 | 
			
		||||
    file.Seek(0, SEEK_SET);
 | 
			
		||||
    if (1 != file.ReadArray<u32>(&magic, 1))
 | 
			
		||||
        return FileType::Error;
 | 
			
		||||
 | 
			
		||||
    if (MakeMagic('\x7f', 'E', 'L', 'F') == magic)
 | 
			
		||||
    u16 machine = 0;
 | 
			
		||||
    file.Seek(18, SEEK_SET);
 | 
			
		||||
    if (1 != file.ReadArray<u16>(&machine, 1))
 | 
			
		||||
        return FileType::Error;
 | 
			
		||||
 | 
			
		||||
    if (MakeMagic('\x7f', 'E', 'L', 'F') == magic && ELF_MACHINE_ARM == machine)
 | 
			
		||||
        return FileType::ELF;
 | 
			
		||||
 | 
			
		||||
    return FileType::Error;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user