[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 04/11] livepatch/arm[32, 64]: Don't load and crash on livepatches loaded with wrong text alignment.
On 09/20/2017 11:31 PM, Konrad Rzeszutek Wilk wrote: The ARM 32&64 ELF specification says "sections containing ARM code must be at least 32-bit aligned." This patch adds the check for that. We also make sure that this check is done when doing relocations for the types that are considered ARM code. However we don't have to check for all as we only implement a small subset of them - as such we only check for data types that are implemented - and if the type is anything else and not aligned to 32-bit, then we error out. Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> snip +bool arch_livepatch_verify_alignment(const struct livepatch_elf_sec *sec) +{ + if ( (sec->sec->sh_flags & SHF_EXECINSTR) && + ((vaddr_t)sec->load_addr % sizeof(uint32_t)) ) + return false; + + return true; +}; + There is a stray semicolon here. If I understand correctly, this patch seems to be doing two separate things: * Checking section alignment when loading the livepatch on ARM32/64.* Checking that relocation destinations are aligned when applying relocations (on ARM32 only). Surely these are separate and should it should be split into two patches? Is the latter check not needed for ARM64? -- Ross Lagerwall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |