From: Eric Blake Date: Thu, 13 Oct 2011 00:27:20 +0000 (-0600) Subject: qemu: fix text block info parsing X-Git-Tag: v0.9.7-rc1~113 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f043ff63087184ac5a67015d5bbc88e2f48d6559;p=thirdparty%2Flibvirt.git qemu: fix text block info parsing 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. --- diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c index 1eb9846ac2..2f31d990e9 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 */ }