From 6cb9bfe5c04e59ea7ae94f7c6a33a8109282361a Mon Sep 17 00:00:00 2001 From: elicn Date: Sat, 28 Sep 2024 22:11:54 +0300 Subject: [PATCH] Avoid updating CR3 when writing CR1 and CR2 --- qemu/target/i386/unicorn.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/qemu/target/i386/unicorn.c b/qemu/target/i386/unicorn.c index 0172999b..449da907 100644 --- a/qemu/target/i386/unicorn.c +++ b/qemu/target/i386/unicorn.c @@ -1156,6 +1156,8 @@ uc_err reg_write(void *_env, int mode, unsigned int regid, const void *value, goto write_cr; case UC_X86_REG_CR1: case UC_X86_REG_CR2: + CHECK_REG_TYPE(uint32_t); + goto write_cr; case UC_X86_REG_CR3: CHECK_REG_TYPE(uint32_t); cpu_x86_update_cr3(env, *(uint32_t *)value); @@ -1396,6 +1398,8 @@ uc_err reg_write(void *_env, int mode, unsigned int regid, const void *value, goto write_cr64; case UC_X86_REG_CR1: case UC_X86_REG_CR2: + CHECK_REG_TYPE(uint64_t); + goto write_cr64; case UC_X86_REG_CR3: CHECK_REG_TYPE(uint64_t); cpu_x86_update_cr3(env, *(uint32_t *)value);