]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: fix uninitialised variable in virQEMUDriverConfigLoadFile
authorJulio Faracco <jcfaracco@gmail.com>
Mon, 11 Jun 2018 20:35:33 +0000 (17:35 -0300)
committerJán Tomko <jtomko@redhat.com>
Tue, 12 Jun 2018 08:08:41 +0000 (10:08 +0200)
Since virConfGetValueBool() can return earlier, the parameter 'value'
might be not initialised properly inside this method. Another proof:
Valgrind is returning this error during the libvirtd daemon startup:

==16199== Conditional jump or move depends on uninitialised value(s)
==16199==    at 0x27FFFEF4: virQEMUDriverConfigLoadFile (qemu_conf.c:809)
==16199==    by 0x2807665C: qemuStateInitialize (qemu_driver.c:654)
==16199==    by 0x5535428: virStateInitialize (libvirt.c:662)
==16199==    by 0x12AED8: daemonRunStateInit (remote_daemon.c:802)
==16199==    by 0x536DE18: virThreadHelper (virthread.c:206)
==16199==    by 0x6CB36DA: start_thread (pthread_create.c:463)
==16199==    by 0x6FEC88E: clone (clone.S:95)

Signed-off-by: Julio Faracco <jcfaracco@gmail.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_conf.c

index f079ae3221c91dbd17baee10a96fe82713cf056d..a4f545ef9243645ac224b5cf58a0aeedda351e8a 100644 (file)
@@ -804,9 +804,9 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg,
         goto cleanup;
     if (virConfGetValueBool(conf, "clear_emulator_capabilities", &cfg->clearEmulatorCapabilities) < 0)
         goto cleanup;
-    if (virConfGetValueBool(conf, "allow_disk_format_probing", &tmp) < 0)
+    if ((rv = virConfGetValueBool(conf, "allow_disk_format_probing", &tmp)) < 0)
         goto cleanup;
-    if (tmp) {
+    if (rv == 1 && tmp) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                        _("allow_disk_format_probing is no longer supported"));
         goto cleanup;