diff --git a/Core/ELF/ElfReader.cpp b/Core/ELF/ElfReader.cpp index 1ec733f76e..a9ad8556d0 100644 --- a/Core/ELF/ElfReader.cpp +++ b/Core/ELF/ElfReader.cpp @@ -78,7 +78,11 @@ bool ElfReader::LoadRelocations(Elf32_Rel *rels, int numRelocs) } addr += segmentVAddr[readwrite]; - if ((addr & 3) || !Memory::IsValidAddress(addr)) { + + // It appears that misaligned relocations are allowed. + // Will they work correctly on big-endian? + + if (!Memory::IsValidAddress(addr)) { if (numErrors < 10) { WARN_LOG(LOADER, "Suspicious address %08x, skipping reloc", addr); } else if (numErrors == 10) {