[libvirt] [PATCH 06/19] qemu_agent: Resolve Coverity RESOURCE_LEAK

John Ferlan jferlan at redhat.com
Wed Aug 27 20:54:37 UTC 2014


Coverity found that on error paths, the 'arg' value wasn't be cleaned
up. Followed the example in qemuAgentSetVCPUs() where upon successful call
to qemuAgentCommand() the 'cpus' is set to NULL; otherwise, when cleanup
occurs the free the memory for 'arg'

Signed-off-by: John Ferlan <jferlan at redhat.com>
---
 src/qemu/qemu_agent.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c
index a10954a..fe38f6d 100644
--- a/src/qemu/qemu_agent.c
+++ b/src/qemu/qemu_agent.c
@@ -1328,7 +1328,7 @@ int qemuAgentFSFreeze(qemuAgentPtr mon, const char **mountpoints,
                       unsigned int nmountpoints)
 {
     int ret = -1;
-    virJSONValuePtr cmd, arg;
+    virJSONValuePtr cmd, arg = NULL;
     virJSONValuePtr reply = NULL;
 
     if (mountpoints && nmountpoints) {
@@ -1343,7 +1343,8 @@ int qemuAgentFSFreeze(qemuAgentPtr mon, const char **mountpoints,
     }
 
     if (!cmd)
-        return -1;
+        goto cleanup;
+    arg = NULL;
 
     if (qemuAgentCommand(mon, cmd, &reply, true,
                          VIR_DOMAIN_QEMU_AGENT_COMMAND_BLOCK) < 0)
@@ -1355,6 +1356,7 @@ int qemuAgentFSFreeze(qemuAgentPtr mon, const char **mountpoints,
     }
 
  cleanup:
+    virJSONValueFree(arg);
     virJSONValueFree(cmd);
     virJSONValueFree(reply);
     return ret;
-- 
1.9.3




More information about the libvir-list mailing list