[libvirt] [PATCH v2 37/45] cpu: Set nfeatures_max correctly in x86Decode

Jiri Denemark jdenemar at redhat.com
Mon Sep 19 13:30:46 UTC 2016


Keeping nfeatures_max set to 0 while nfeatures > 0 and some features are
already stored in features array is just asking for problems once we
want to add a new feature into the array.

Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
---

Notes:
    Version 2:
    - no change

 src/cpu/cpu_x86.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c
index bd26703..f424f72 100644
--- a/src/cpu/cpu_x86.c
+++ b/src/cpu/cpu_x86.c
@@ -1871,10 +1871,12 @@ x86Decode(virCPUDefPtr cpu,
     if (vendor && VIR_STRDUP(cpu->vendor, vendor->name) < 0)
         goto cleanup;
 
-    cpu->model = cpuModel->model;
+    VIR_STEAL_PTR(cpu->model, cpuModel->model);
+    VIR_STEAL_PTR(cpu->features, cpuModel->features);
     cpu->nfeatures = cpuModel->nfeatures;
-    cpu->features = cpuModel->features;
-    VIR_FREE(cpuModel);
+    cpuModel->nfeatures = 0;
+    cpu->nfeatures_max = cpuModel->nfeatures_max;
+    cpuModel->nfeatures_max = 0;
 
     ret = 0;
 
-- 
2.10.0




More information about the libvir-list mailing list