Pablo Greco 40546a
From 63d6271b0ed420fe4ef986209ea71fda23e7795a Mon Sep 17 00:00:00 2001
Pablo Greco 40546a
Message-Id: <63d6271b0ed420fe4ef986209ea71fda23e7795a@dist-git>
Pablo Greco 40546a
From: Erik Skultety <eskultet@redhat.com>
Pablo Greco 40546a
Date: Mon, 18 Nov 2019 15:18:11 +0100
Pablo Greco 40546a
Subject: [PATCH] qemu: Fix NULL ptr dereference caused by
Pablo Greco 40546a
 qemuDomainDefFormatBufInternal
Pablo Greco 40546a
Pablo Greco 40546a
qemuDomainDefFormatBufInternal function wasn't testing whether the CPU
Pablo Greco 40546a
was actually defined in the XML and saving such a domain resulted in the
Pablo Greco 40546a
following backtrace:
Pablo Greco 40546a
Pablo Greco 40546a
0 in qemuDomainMakeCPUMigratable (cpu=0x0)
Pablo Greco 40546a
1 in qemuDomainDefFormatBufInternal()
Pablo Greco 40546a
2 in qemuDomainDefFormatXMLInternal()
Pablo Greco 40546a
3 in qemuDomainDefFormatLive()
Pablo Greco 40546a
4 in qemuDomainSaveInternal()
Pablo Greco 40546a
5 in qemuDomainSaveFlags()
Pablo Greco 40546a
6 in qemuDomainSave()
Pablo Greco 40546a
7 in virDomainSave()
Pablo Greco 40546a
Pablo Greco 40546a
Signed-off-by: Erik Skultety <eskultet@redhat.com>
Pablo Greco 40546a
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Pablo Greco 40546a
(cherry picked from commit 2816fe2e846ab3bd2bfbef123c426a17f1e1df98)
Pablo Greco 40546a
Pablo Greco 40546a
https://bugzilla.redhat.com/show_bug.cgi?id=1749672
Pablo Greco 40546a
https://bugzilla.redhat.com/show_bug.cgi?id=1756156
Pablo Greco 40546a
https://bugzilla.redhat.com/show_bug.cgi?id=1721608
Pablo Greco 40546a
Pablo Greco 40546a
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Pablo Greco 40546a
Message-Id: <bfa9a6fe0d0cb0ea7ccfa3270c3eaed47d206cb0.1574086659.git.jdenemar@redhat.com>
Pablo Greco 40546a
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Pablo Greco 40546a
---
Pablo Greco 40546a
 src/qemu/qemu_domain.c | 2 +-
Pablo Greco 40546a
 1 file changed, 1 insertion(+), 1 deletion(-)
Pablo Greco 40546a
Pablo Greco 40546a
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
Pablo Greco 40546a
index f45d7d427e..6b867ad669 100644
Pablo Greco 40546a
--- a/src/qemu/qemu_domain.c
Pablo Greco 40546a
+++ b/src/qemu/qemu_domain.c
Pablo Greco 40546a
@@ -7543,7 +7543,7 @@ qemuDomainDefFormatBufInternal(virQEMUDriverPtr driver,
Pablo Greco 40546a
                 goto cleanup;
Pablo Greco 40546a
         }
Pablo Greco 40546a
 
Pablo Greco 40546a
-        if (qemuDomainMakeCPUMigratable(def->cpu) < 0)
Pablo Greco 40546a
+        if (def->cpu && qemuDomainMakeCPUMigratable(def->cpu) < 0)
Pablo Greco 40546a
             goto cleanup;
Pablo Greco 40546a
     }
Pablo Greco 40546a
 
Pablo Greco 40546a
-- 
Pablo Greco 40546a
2.24.0
Pablo Greco 40546a