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


Reply via email to