[libvirt] [PATCH] qemu: Fix crash in qemucapsprobe

Jiri Denemark jdenemar at redhat.com
Tue Sep 27 11:47:10 UTC 2016


The qemucapsprobe helper calls virQEMUCapsInitHostCPUModel with
caps == NULL, causing the following crash:

    Program received signal SIGSEGV, Segmentation fault.
    #0  0x00007ffff788775f in virQEMUCapsInitHostCPUModel
        (qemuCaps=qemuCaps at entry=0x649680, host=host at entry=0x10) at
        src/qemu/qemu_capabilities.c:2969
    #1  0x00007ffff7889dbf in virQEMUCapsNewForBinaryInternal
        (caps=caps at entry=0x0, binary=<optimized out>,
        libDir=libDir at entry=0x4033f6 "/tmp", cacheDir=cacheDir at entry=0x0,
        runUid=runUid at entry=4294967295, runGid=runGid at entry=4294967295,
        qmpOnly=true) at src/qemu/qemu_capabilities.c:4039
    #2  0x0000000000401702 in main (argc=2, argv=0x7fffffffd968) at
        tests/qemucapsprobe.c:73

Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
---
 src/qemu/qemu_capabilities.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 4d859c4..73a7fd4 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -4036,7 +4036,8 @@ virQEMUCapsNewForBinaryInternal(virCapsPtr caps,
             virQEMUCapsRememberCached(qemuCaps, cacheDir) < 0)
             goto error;
 
-        virQEMUCapsInitHostCPUModel(qemuCaps, &caps->host);
+        if (caps)
+            virQEMUCapsInitHostCPUModel(qemuCaps, &caps->host);
     }
 
  cleanup:
-- 
2.10.0




More information about the libvir-list mailing list