Signed-off-by: liguang <lig.f...@cn.fujitsu.com> --- target-i386/cpu.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c index b92ee73..862f2dd 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -1198,13 +1198,13 @@ static char *x86_cpuid_get_model_id(Object *obj, Error **errp) X86CPU *cpu = X86_CPU(obj); CPUX86State *env = &cpu->env; char *value; - int i; + int i, len = strlen((char *)env->cpuid_model); - value = g_malloc(48 + 1); - for (i = 0; i < 48; i++) { + value = g_malloc(len + 1); + for (i = 0; i < len; i++) { value[i] = env->cpuid_model[i >> 2] >> (8 * (i & 3)); } - value[48] = '\0'; + value[len + 1] = '\0'; return value; } @@ -1223,6 +1223,7 @@ static void x86_cpuid_set_model_id(Object *obj, const char *model_id, for (i = 0; i < 48; i++) { if (i >= len) { c = '\0'; + break; } else { c = (uint8_t)model_id[i]; } -- 1.7.2.5