[libvirt] [PATCH 2/8] qemu: silence coverity warnings

Eric Blake eblake at redhat.com
Fri Jul 1 23:36:00 UTC 2011


Coverity warns if the majority of callers check a function for
errors, but a few don't; but in qemu_audit and qemu_domain, the
choice to not check for failures was safe.  In qemu_command, the
failure to generate a uuid can only occur on a bad pointer.

* src/qemu/qemu_audit.c (qemuAuditCgroup): Ignore failure to get
cgroup controller.
* src/qemu/qemu_domain.c (qemuDomainObjEnterMonitor)
(qemuDomainObjEnterMonitorWithDriver): Ignore failure to get
timestamp.
* src/qemu/qemu_command.c (qemuParseCommandLine): Check for error.
---
 src/qemu/qemu_audit.c   |    6 ++++--
 src/qemu/qemu_command.c |    6 +++++-
 src/qemu/qemu_domain.c  |    4 ++--
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/qemu/qemu_audit.c b/src/qemu/qemu_audit.c
index 1da0773..1baef40 100644
--- a/src/qemu/qemu_audit.c
+++ b/src/qemu/qemu_audit.c
@@ -31,6 +31,7 @@
 #include "uuid.h"
 #include "logging.h"
 #include "memory.h"
+#include "ignore-value.h"

 /* Return nn:mm in hex for block and character devices, and NULL
  * for other file types, stat failure, or allocation failure.  */
@@ -264,8 +265,9 @@ qemuAuditCgroup(virDomainObjPtr vm, virCgroupPtr cgroup,
         return;
     }

-    virCgroupPathOfController(cgroup, VIR_CGROUP_CONTROLLER_DEVICES,
-                              NULL, &controller);
+    ignore_value(virCgroupPathOfController(cgroup,
+                                           VIR_CGROUP_CONTROLLER_DEVICES,
+                                           NULL, &controller));
     detail = virAuditEncode("cgroup", VIR_AUDIT_STR(controller));

     VIR_AUDIT(VIR_AUDIT_RECORD_RESOURCE, success,
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 90a6653..fc15f87 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -5842,7 +5842,11 @@ virDomainDefPtr qemuParseCommandLine(virCapsPtr caps,
     if (VIR_ALLOC(cmd) < 0)
         goto no_memory;

-    virUUIDGenerate(def->uuid);
+    if (virUUIDGenerate(def->uuid) < 0) {
+        qemuReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+                        _("failed to generate uuid"));
+        goto error;
+    }

     def->id = -1;
     def->mem.cur_balloon = def->mem.max_balloon = 64 * 1024;
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 3af1c86..4b65d87 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -608,7 +608,7 @@ void qemuDomainObjEnterMonitor(virDomainObjPtr obj)

     qemuMonitorLock(priv->mon);
     qemuMonitorRef(priv->mon);
-    virTimeMs(&priv->monStart);
+    ignore_value(virTimeMs(&priv->monStart));
     virDomainObjUnlock(obj);
 }

@@ -651,7 +651,7 @@ void qemuDomainObjEnterMonitorWithDriver(struct qemud_driver *driver,

     qemuMonitorLock(priv->mon);
     qemuMonitorRef(priv->mon);
-    virTimeMs(&priv->monStart);
+    ignore_value(virTimeMs(&priv->monStart));
     virDomainObjUnlock(obj);
     qemuDriverUnlock(driver);
 }
-- 
1.7.4.4




More information about the libvir-list mailing list