mirror of
https://github.com/qemu/qemu.git
synced 2024-12-01 07:43:35 +08:00
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 <mj.mccormack@samsung.com> Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
This commit is contained in:
parent
eb47d7c5d9
commit
9a826d7854
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user