]> git.proxmox.com Git - qemu.git/commitdiff
Don't translate pointer when in restore_sigcontext
authorMike McCormack <mj.mccormack@samsung.com>
Wed, 1 Jun 2011 06:14:37 +0000 (15:14 +0900)
committerRiku Voipio <riku.voipio@iki.fi>
Mon, 20 Jun 2011 14:00:18 +0000 (17:00 +0300)
Fixes crash in i386 when user emulation base address is non-zero.

21797 rt_sigreturn(8,1082124603,1,0,1082126048,1082126248)Exit reason and status: signal 11

Signed-off-by: Mike McCormack <mj.mccormack@samsung.com>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
linux-user/signal.c

index 11b25be7b8414e9f7a628a4cc2209c044a92a1de..cb7138f1cfdddadf1f8cece62e8943f96572cdbf 100644 (file)
@@ -981,8 +981,8 @@ restore_sigcontext(CPUX86State *env, struct target_sigcontext *sc, int *peax)
         env->regs[R_ECX] = tswapl(sc->ecx);
         env->eip = tswapl(sc->eip);
 
-        cpu_x86_load_seg(env, R_CS, lduw(&sc->cs) | 3);
-        cpu_x86_load_seg(env, R_SS, lduw(&sc->ss) | 3);
+        cpu_x86_load_seg(env, R_CS, lduw_p(&sc->cs) | 3);
+        cpu_x86_load_seg(env, R_SS, lduw_p(&sc->ss) | 3);
 
         tmpflags = tswapl(sc->eflags);
         env->eflags = (env->eflags & ~0x40DD5) | (tmpflags & 0x40DD5);