OSDN Git Service

linux-user/signal.c: Correct error path for AArch64 do_rt_sigreturn
authorPeter Maydell <peter.maydell@linaro.org>
Wed, 12 Mar 2014 13:06:00 +0000 (13:06 +0000)
committerRiku Voipio <riku.voipio@linaro.org>
Mon, 17 Mar 2014 09:44:31 +0000 (11:44 +0200)
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

index 24c91f3..209855e 100644 (file)
@@ -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) {