From: Mike McCormack Date: Wed, 1 Jun 2011 06:14:37 +0000 (+0900) Subject: Don't translate pointer when in restore_sigcontext X-Git-Tag: TizenStudio_2.0_p2.3.2~208^2~5642^2~17 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9a826d7854baf6b90de46fea785d1bfc5d2c22a7;p=sdk%2Femulator%2Fqemu.git Don't translate pointer when in restore_sigcontext 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 Signed-off-by: Riku Voipio --- diff --git a/linux-user/signal.c b/linux-user/signal.c index 11b25be..cb7138f 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -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);