mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
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@citrix.com> Acked-by: Julien Grall <julien.grall@linaro.org>
This commit is contained in:
1 parent
95e6d82224
commit
fc0cafeab3
1 file changed
+11
-1
+11
-1
@@ -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_64bit_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
|
||||
|
||||