Don't translate pointer when in restore_sigcontext
PATCH 1/1 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 <[email protected]>
--- linux-user/signal.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
linux-user/signal.c +2 -2
@@ -982,8 +982,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 );
Signature · 1 line
1.7.0.4