[Libvir] [PATCH] (for discussion) DHCP host mappings using 3 arrays API
Jim Meyering
jim at meyering.net
Wed Feb 27 16:27:33 UTC 2008
"Richard W.M. Jones" <rjones at redhat.com> wrote:
> Here's the final version of the "3 arrays" version of the patch, with
> the memory corruptor fixed.
...
> Index: src/qemu_driver.c
> ===================================================================
> RCS file: /data/cvs/libvirt/src/qemu_driver.c,v
> retrieving revision 1.57
> diff -u -r1.57 qemu_driver.c
> --- src/qemu_driver.c 27 Feb 2008 04:37:07 -0000 1.57
> +++ src/qemu_driver.c 27 Feb 2008 16:08:34 -0000
> @@ -925,6 +930,7 @@
> dhcpStartDhcpDaemon(virConnectPtr conn,
> struct qemud_network *network)
> {
> + char buf[PATH_MAX];
> char **argv;
> int ret, i;
>
> @@ -934,6 +940,15 @@
> return -1;
> }
>
> + /* Touch the DHCP hosts file so it exists before dnsmasq starts up. */
> + snprintf (buf, sizeof buf, DHCP_HOSTS_FORMAT, network->def->name);
> + ret = open (buf, O_CREAT|O_WRONLY, 0644);
> + if (ret == -1) {
> + qemudReportError (conn, NULL, NULL, VIR_ERR_SYSTEM_ERROR,
> + "%s: %s", buf, strerror (errno));
> + return -1;
> + }
> +
> argv = NULL;
> if (qemudBuildDnsmasqArgv(conn, network, &argv) < 0)
> return -1;
Whoops. You'll want to close that file descriptor.
E.g., put this right before "argv = NULL;":
if (close (ret))
return -1;
It'd be nice to declare a new variable, say fd, for that bit.
More information about the libvir-list
mailing list