]> xenbits.xensource.com Git - libvirt.git/commitdiff
network: bridge: Avoid memory leak from networkBuildDhcpDaemonCommandLine
authorPeter Krempa <pkrempa@redhat.com>
Tue, 3 Jun 2014 12:34:23 +0000 (14:34 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 3 Jun 2014 12:34:23 +0000 (14:34 +0200)
If the leasehelper_path couldn't be found the code would leak the
freshly constructed command structure. Re-arrange code to avoid the
problem.

Found by coverity, broken by baafe668fa56767c031468ccd5df3e62eaa11370.

src/network/bridge_driver.c

index 51f01fb32cb6cff9efc48393f4d98f04f39ca6de..4fc4c9a66b48217728ca3db9215b6ca29eb8589e 100644 (file)
@@ -1273,15 +1273,14 @@ networkBuildDhcpDaemonCommandLine(virNetworkObjPtr network,
         goto cleanup;
     }
 
-    cmd = virCommandNew(dnsmasqCapsGetBinaryPath(caps));
-    virCommandAddArgFormat(cmd, "--conf-file=%s", configfile);
-
     /* This helper is used to create custom leases file for libvirt */
     if (!(leaseshelper_path = virFileFindResource("libvirt_leaseshelper",
                                                   "src",
                                                   LIBEXECDIR)))
         goto cleanup;
 
+    cmd = virCommandNew(dnsmasqCapsGetBinaryPath(caps));
+    virCommandAddArgFormat(cmd, "--conf-file=%s", configfile);
     virCommandAddArgFormat(cmd, "--dhcp-script=%s", leaseshelper_path);
 
     *cmdout = cmd;