From 77ef79892ec25a76bd63ed2d15ec8d692328c72e Mon Sep 17 00:00:00 2001 From: Henrik Rydgard Date: Fri, 15 Nov 2013 18:45:16 +0100 Subject: [PATCH] Remove wrong alignment check on relocations. Add a comment. --- Core/ELF/ElfReader.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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) {