[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen stable-4.4] xen: arm: handle AArch32 userspace when dumping 64-bit guest state.
commit 99a9f497cb070ba7168d45442ad8ea3604d95dcb Author: Ian Campbell <ian.campbell@xxxxxxxxxx> AuthorDate: Tue Aug 12 15:45:49 2014 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Tue Aug 12 15:45:49 2014 +0200 xen: arm: handle AArch32 userspace when dumping 64-bit guest state. A 64-bit guest can still be in 32-bit mode when running userspace, handle this case by dumping the correct 32-bit state. Note that on ARM it is not possible to change mode without the help of the next exception level, hence there is no way a 64-bit guest can be running in 32-bit kernel modes. This is part of CVE-2014-5147 / XSA-102. Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Acked-by: Julien Grall <julien.grall@xxxxxxxxxx> master commit: fc0cafeab30fe93963457fafbad7a01c7f55ea5f master date: 2014-08-12 15:32:27 +0200 --- xen/arch/arm/traps.c | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c index e2e2db3..7367399 100644 --- a/xen/arch/arm/traps.c +++ b/xen/arch/arm/traps.c @@ -697,7 +697,17 @@ static void _show_registers(struct cpu_user_regs *regs, show_registers_32(regs, ctxt, guest_mode, v); #ifdef CONFIG_ARM_64 else if ( is_pv64_domain(v->domain) ) - show_registers_64(regs, ctxt, guest_mode, v); + { + if ( psr_mode_is_32bit(regs->cpsr) ) + { + BUG_ON(!usr_mode(regs)); + show_registers_32(regs, ctxt, guest_mode, v); + } + else + { + show_registers_64(regs, ctxt, guest_mode, v); + } + } #endif } else -- generated by git-patchbot for /home/xen/git/xen.git#stable-4.4 _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |