From: "Carlos L. Torres" <carlos.tor...@rackspace.com> Signed-off-by: Carlos L. Torres <carlos.tor...@rackspace.com> --- qmp.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/qmp.c b/qmp.c index 403805a..837cb3f 100644 --- a/qmp.c +++ b/qmp.c @@ -49,14 +49,27 @@ VersionInfo *qmp_query_version(Error **errp) { VersionInfo *info = g_new0(VersionInfo, 1); const char *version = QEMU_VERSION; - char *tmp; + const char *tmp; + int err; info->qemu = g_new0(VersionTriple, 1); - info->qemu->major = strtol(version, &tmp, 10); + err = qemu_strtol(version, &tmp, 10, &(info->qemu->major)); + if (err) { + error_setg(errp, "There was a problem retrieving QEMU major version."); + } tmp++; - info->qemu->minor = strtol(tmp, &tmp, 10); + + err = qemu_strtol(tmp, &tmp, 10, &(info->qemu->minor)); + if (err) { + error_setg(errp, "There was a problem retrieving QEMU minor version."); + } tmp++; - info->qemu->micro = strtol(tmp, &tmp, 10); + + err = qemu_strtol(tmp, &tmp, 10, &(info->qemu->micro)); + if (err) { + error_setg(errp, "There was a problem retrieving QEMU micro version."); + } + info->package = g_strdup(QEMU_PKGVERSION); return info; -- 1.9.1