[libvirt] [PATCH] qemu: fix text block info parsing

Eric Blake eblake at redhat.com
Thu Oct 13 00:30:08 UTC 2011


Detected by Coverity.  p (the pointer to the string) is always true;
when in reality, we wanted to know whether the integer value of the
just-parsed string is '0' or '1'.  Logic bug since commit b1b5b51.

* src/qemu/qemu_monitor_text.c (qemuMonitorTextGetBlockInfo): Set
results to proper value.
---

Second bug introduced by the same commit.  And I think I reviewed
it originally.  Sorry for not catching it earlier.

 src/qemu/qemu_monitor_text.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c
index 1eb9846..49c469b 100644
--- a/src/qemu/qemu_monitor_text.c
+++ b/src/qemu/qemu_monitor_text.c
@@ -817,19 +817,19 @@ int qemuMonitorTextGetBlockInfo(qemuMonitorPtr mon,
                     if (virStrToLong_i(p, &dummy, 10, &tmp) == -1)
                         VIR_DEBUG("error reading removable: %s", p);
                     else
-                        info->removable = p != NULL;
+                        info->removable = tmp != 0;
                 } else if (STRPREFIX(p, "locked=")) {
                     p += strlen("locked=");
                     if (virStrToLong_i(p, &dummy, 10, &tmp) == -1)
                         VIR_DEBUG("error reading locked: %s", p);
                     else
-                        info->locked = p ? true : false;
+                        info->locked = tmp != 0;
                 } else if (STRPREFIX(p, "tray_open=")) {
                     p += strlen("tray_open=");
                     if (virStrToLong_i(p, &dummy, 10, &tmp) == -1)
                         VIR_DEBUG("error reading tray_open: %s", p);
                     else
-                        info->tray_open = p ? true : false;
+                        info->tray_open = tmp != 0;
                 } else {
                     /* ignore because we don't parse all options */
                 }
-- 
1.7.4.4




More information about the libvir-list mailing list