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.
This commit is contained in:
Eric Blake 2011-10-12 18:27:20 -06:00
parent 60be9e8c0e
commit f043ff6308

View File

@ -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 */
}