unicorn/qemu
Wu Xiang a8de2d4748
target/i386: fix interrupt CPL error when using ist in x86-64
In do_interrupt64(), when interrupt stack table(ist) is enabled
and the the target code segment is conforming(e2 & DESC_C_MASK), the
old implementation always set new CPL to 0, and SS.RPL to 0.

This is incorrect for when CPL3 code access a CPL0 conforming code
segment, the CPL should remain unchanged. Otherwise higher privileged
code can be compromised.

The patch fix this for always set dpl = cpl when the target code segment
is conforming, and modify the last parameter `flags`, which contains
correct new CPL, in cpu_x86_load_seg_cache().

Backports commit e95e9b88ba5f4a6c17f4d0c3a3a6bf3f648bb328 from qemu
2018-03-03 21:18:22 -05:00
..
crypto
default-configs
docs
fpu softfloat: define floatx80_round() 2018-03-03 20:57:27 -05:00
hw i386: Remove AMD feature flag aliases from Opteron models 2018-03-01 23:49:04 -05:00
include tcg: consistently access cpu->tb_jmp_cache atomically 2018-03-03 21:12:36 -05:00
qapi qapi: add explicit null to string input and output visitors 2018-03-03 20:32:50 -05:00
qobject qnum: add uint type 2018-03-03 18:37:56 -05:00
qom tcg: consistently access cpu->tb_jmp_cache atomically 2018-03-03 21:12:36 -05:00
scripts qapi: Remove visit_start_alternate() parameter promote_int 2018-03-03 18:34:35 -05:00
target target/i386: fix interrupt CPL error when using ist in x86-64 2018-03-03 21:18:22 -05:00
tcg target-m68k: use floatx80 internally 2018-03-03 19:35:17 -05:00
util util: add cacheinfo 2018-03-03 16:58:28 -05:00
aarch64.h Fix building for multi-arch targets 2018-03-03 21:14:08 -05:00
aarch64eb.h Fix building for multi-arch targets 2018-03-03 21:14:08 -05:00
accel.c clean-up: removed duplicate #includes 2018-02-28 08:51:56 -05:00
arm.h Fix building for multi-arch targets 2018-03-03 21:14:08 -05:00
armeb.h Fix building for multi-arch targets 2018-03-03 21:14:08 -05:00
atomic_template.h
CODING_STYLE
configure configure: remove Cygwin 2018-03-02 14:17:41 -05:00
COPYING
COPYING.LIB
cpu-exec-common.c
cpu-exec.c tcg: Introduce goto_ptr opcode and tcg_gen_lookup_and_goto_ptr 2018-03-02 21:05:18 -05:00
cpus.c tcg: handle EXCP_ATOMIC exception for system emulation 2018-03-02 09:56:43 -05:00
cputlb.c tcg: consistently access cpu->tb_jmp_cache atomically 2018-03-03 21:12:36 -05:00
exec.c exec: simplify phys_page_find() params 2018-03-03 14:28:25 -05:00
gen_all_header.sh
glib_compat.c qapi: Improve qobject input visitor error reporting 2018-03-02 12:05:53 -05:00
HACKING
header_gen.py Fix building for multi-arch targets 2018-03-03 21:14:08 -05:00
ioport.c
LICENSE
m68k.h Fix building for multi-arch targets 2018-03-03 21:14:08 -05:00
Makefile
Makefile.objs
Makefile.target Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
memory_ldst.inc.c exec: introduce memory_ldst.inc.c 2018-03-01 09:59:34 -05:00
memory_mapping.c
memory.c memory: Introduce DEVICE_HOST_ENDIAN for ram device 2018-03-02 11:24:32 -05:00
mips64.h Fix building for multi-arch targets 2018-03-03 21:14:08 -05:00
mips64el.h Fix building for multi-arch targets 2018-03-03 21:14:08 -05:00
mips.h Fix building for multi-arch targets 2018-03-03 21:14:08 -05:00
mipsel.h Fix building for multi-arch targets 2018-03-03 21:14:08 -05:00
powerpc.h Fix building for multi-arch targets 2018-03-03 21:14:08 -05:00
qapi-schema.json qapi: Update scripts to commit 01b2ffcedd94ad7b42bc870e4c6936c87ad03429 2018-03-03 18:32:12 -05:00
qemu-timer.c
rules.mak
softmmu_template.h
sparc64.h Fix building for multi-arch targets 2018-03-03 21:14:08 -05:00
sparc.h Fix building for multi-arch targets 2018-03-03 21:14:08 -05:00
tcg-runtime.c tcg: Increase hit rate of lookup_tb_ptr 2018-03-03 17:16:23 -05:00
translate-all.c tcg: consistently access cpu->tb_jmp_cache atomically 2018-03-03 21:12:36 -05:00
translate-all.h
translate-common.c
unicorn_common.h
VERSION
vl.c util: add cacheinfo 2018-03-03 16:58:28 -05:00
vl.h
x86_64.h Fix building for multi-arch targets 2018-03-03 21:14:08 -05:00