unicorn/qemu/target/i386
Eduardo Habkost 181524d695
i386: Change X86CPUDefinition::model_id to const char*
It is valid to have a 48-character model ID on CPUID, however the
definition of X86CPUDefinition::model_id is char[48], which can
make the compiler drop the null terminator from the string.

If a CPU model happens to have 48 bytes on model_id, "-cpu help"
will print garbage and the object_property_set_str() call at
x86_cpu_load_def() will read data outside the model_id array.

We could increase the array size to 49, but this would mean the
compiler would not issue a warning if a 49-char string is used by
mistake for model_id.

To make things simpler, simply change model_id to be const char*,
and validate the string length using an assert() on
x86_register_cpudef_type().

Backports commit 4b220d88ba76fb2623ce4b8ba1f1eea66b82144e from qemu
2018-03-05 13:48:29 -05:00
..
arch_memory_mapping.c target/i386: enable A20 automatically in system management mode 2018-03-03 14:33:09 -05:00
bpt_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
cc_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
cc_helper_template.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
cpu-qom.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
cpu.c i386: Change X86CPUDefinition::model_id to const char* 2018-03-05 13:48:29 -05:00
cpu.h i386/cpu/hyperv: support over 64 vcpus for windows guests 2018-03-05 00:00:53 -05:00
excp_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
fpu_helper.c target/i386: split cpu_set_mxcsr() and make cpu_set_fpuc() inline 2018-03-03 21:52:29 -05:00
helper.c target/i386: add the tcg_enabled() in target/i386/ 2018-03-03 21:56:31 -05:00
helper.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
int_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
Makefile.objs target/i386: add the CONFIG_TCG into Makefiles 2018-03-03 21:57:22 -05:00
mem_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
misc_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
mpx_helper.c target/i386: move cpu_sync_bndcs_hflags() function 2018-03-03 21:41:26 -05:00
ops_sse.h target/i386: fix phminposuw in-place operation 2018-03-04 23:59:26 -05:00
ops_sse_header.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
seg_helper.c target/i386: simplify handling of conforming code segments on interrupt 2018-03-03 21:19:48 -05:00
shift_helper_template.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
smm_helper.c Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
svm.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
svm_helper.c target-i386: defer VMEXIT to do_interrupt 2018-03-02 12:49:18 -05:00
TODO Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
topology.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00
translate.c target/i386: Fix handling of VEX prefixes 2018-03-05 13:48:29 -05:00
unicorn.c target/i386: make cpu_get_fp80()/cpu_set_fp80() static 2018-03-03 21:44:09 -05:00
unicorn.h Move target-* CPU file into a target/ folder 2018-03-01 22:50:58 -05:00