diff mbox

[PULL,for-2.0,1/7] linux-user/signal.c: Correct error path for AArch64 do_rt_sigreturn

Message ID 7f72cd235fa33f2fc7a8d1cc4d621bf7db61e9eb.1395237255.git.riku.voipio@linaro.org
State Accepted
Commit 7f72cd235fa33f2fc7a8d1cc4d621bf7db61e9eb
Headers show

Commit Message

Riku Voipio March 19, 2014, 2:02 p.m. UTC
From: Peter Maydell <peter.maydell@linaro.org>

The error path in AArch64 do_rt_sigreturn() which fails before
attempting lock_user_struct() was doing an unlock_user_struct()
on an uninitialized variable. Initialize frame to NULL so we
can use the same error-exit path in all cases (unlock of NULL
is permitted and does nothing).

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
---
 linux-user/signal.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox

Patch

diff --git a/linux-user/signal.c b/linux-user/signal.c
index 24c91f3..209855e 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -1340,7 +1340,7 @@  static void setup_frame(int sig, struct target_sigaction *ka,
 
 long do_rt_sigreturn(CPUARMState *env)
 {
-    struct target_rt_sigframe *frame;
+    struct target_rt_sigframe *frame = NULL;
     abi_ulong frame_addr = env->xregs[31];
 
     if (frame_addr & 15) {