From: Pavel Hrdina Date: Tue, 15 Dec 2015 10:04:49 +0000 (+0100) Subject: qemuMonitorJSONEjectMedia: don't stringify the replay at all X-Git-Tag: v1.3.1-rc1~193 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cbd3d06541dec59d3f9d58bf04182f4dd554eae6;p=thirdparty%2Flibvirt.git qemuMonitorJSONEjectMedia: don't stringify the replay at all Commit 256496e1 introduced a detection if "is locked" in error replay from qemu monitor. Commit c4073657 fixed a memory leak, but it was pointed out by Peter, that this could be done cleaner without stringifing the replay. Signed-off-by: Pavel Hrdina --- diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 4ae63cf7c4..d4b6514420 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -2223,11 +2223,12 @@ int qemuMonitorJSONEjectMedia(qemuMonitorPtr mon, ret = qemuMonitorJSONCheckError(cmd, reply); if (ret < 0) { - char *replyStr = virJSONValueToString(reply, false); - - if (c_strcasestr(replyStr, "is locked")) - ret = -2; - VIR_FREE(replyStr); + virJSONValuePtr error = virJSONValueObjectGet(reply, "error"); + if (error) { + const char *errorStr = virJSONValueObjectGetString(error, "desc"); + if (errorStr && c_strcasestr(errorStr, "is locked")) + ret = -2; + } } virJSONValueFree(cmd);