From ae08792301c182bdec48656dee3dce38b3391a1a Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Tue, 23 Feb 2016 15:36:43 +0000 Subject: linux-user: Use restrictive mask when calling cpsr_write() When linux-user code is calling cpsr_write(), use a restrictive mask to ensure we are limiting the set of CPSR bits we update. In particular, don't allow the mode bits to be changed. Signed-off-by: Peter Maydell Reviewed-by: Sergey Fedorov Message-id: 1455556977-3644-5-git-send-email-peter.maydell@linaro.org --- linux-user/main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'linux-user/main.c') diff --git a/linux-user/main.c b/linux-user/main.c index 072eee8285..700724effe 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -4446,7 +4446,8 @@ int main(int argc, char **argv, char **envp) #elif defined(TARGET_ARM) { int i; - cpsr_write(env, regs->uregs[16], 0xffffffff, CPSRWriteByInstr); + cpsr_write(env, regs->uregs[16], CPSR_USER | CPSR_EXEC, + CPSRWriteByInstr); for(i = 0; i < 16; i++) { env->regs[i] = regs->uregs[i]; } -- cgit 1.4.1