arm64: big-endian: don't treat code as data when copying sigret code
Currently the sigreturn compat code is copied to an offset in the vectors table. When using a BE kernel this data will be stored in the wrong endianess so when returning from a signal on a 32-bit BE system, arbitrary code will be executed. Instead of declaring the code inside a struct and copying that, use the assembler's .byte directives to store the code in the correct endianess regardless of platform endianess. Acked-by:Will Deacon <will.deacon@arm.com> Signed-off-by:
Matthew Leach <matthew.leach@arm.com> Signed-off-by:
Catalin Marinas <catalin.marinas@arm.com> Git-commit: a1d5ebaf8ccdd100f45042ce32c591867de04ac3 Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git Signed-off-by:
Ian Maund <imaund@codeaurora.org>
Loading
Please register or sign in to comment