[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH 04/11] network: Remove conditional settings to resolve resource leak



On 2013年01月31日 03:36, John Ferlan wrote:
The conditional setting of cmdout in networkBuildDhcpDaemonCommandLine()
caused Coverity to complain that 'cmd' could be leaked if !cmdout.  Since
the function is local and only called with cmdout being passed those checks
have been removed.
---
  src/network/bridge_driver.c | 9 +++------
  1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 21255f0..e9a36e5 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -995,7 +995,8 @@ cleanup:

  /* build the dnsmasq command line */
  static int
-networkBuildDhcpDaemonCommandLine(virNetworkObjPtr network, virCommandPtr *cmdout,
+networkBuildDhcpDaemonCommandLine(virNetworkObjPtr network,
+                                  virCommandPtr *cmdout,
                                    char *pidfile, dnsmasqContext *dctx,
                                    dnsmasqCapsPtr caps)
  {
@@ -1027,13 +1028,9 @@ networkBuildDhcpDaemonCommandLine(virNetworkObjPtr network, virCommandPtr *cmdou

      cmd = virCommandNew(dnsmasqCapsGetBinaryPath(caps));
      virCommandAddArgFormat(cmd, "--conf-file=%s", configfile);
-
-    if (cmdout)
-        *cmdout = cmd;
+    *cmdout = cmd;
      ret = 0;
  cleanup:
-    if (ret<  0)
-        virCommandFree(cmd);
      return ret;
  }


Per the function is static, the changes are fine. But to be safe,
using ATTRIBUTE_NONNULL will be better:

static int ATTRIBUTE_NONNULL(2)
networkBuildDhcpDaemonCommandLine (...)

Osier


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]