From aff1ae1b17236936e731e423e660a18937567bd7 Mon Sep 17 00:00:00 2001 From: Xusheng Date: Wed, 19 Jun 2024 13:08:26 +0800 Subject: Fix up the files.elf.detectARMBE8Binary setting --- view/elf/elfview.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'view/elf/elfview.cpp') diff --git a/view/elf/elfview.cpp b/view/elf/elfview.cpp index cf9f4efa..d94498f1 100644 --- a/view/elf/elfview.cpp +++ b/view/elf/elfview.cpp @@ -2749,7 +2749,8 @@ uint64_t ElfViewType::ParseHeaders(BinaryView* data, ElfIdent& ident, ElfCommonH // retrieve architecture // FIXME: Architecture registration methods should perhaps be virtual and take the raw data, or some additional opaque information. - if (Settings::Instance()->Get("files.elf.detectARMBE8Binary")) + bool checkForARMBE8 = Settings::Instance()->Get("files.elf.detectARMBE8Binary"); + if (checkForARMBE8) endianness = ((commonHeader.arch == EM_ARM) && (header.flags & EF_ARM_BE8)) ? BigEndian : endianness; /* for architectures where .e_machine field doesn't disambiguate between 32/64 (like MIPS), @@ -2774,7 +2775,7 @@ uint64_t ElfViewType::ParseHeaders(BinaryView* data, ElfIdent& ident, ElfCommonH else { BNEndianness codeEndianness = endianness; - if ((commonHeader.arch == EM_ARM) && (header.flags & EF_ARM_BE8)) + if (checkForARMBE8 && (commonHeader.arch == EM_ARM) && (header.flags & EF_ARM_BE8)) codeEndianness = LittleEndian; if (arch) -- cgit v1.3.1