const char *config_dir)
{
dnsmasqAddnHostsfile *addnhostsfile;
+ virBuffer buf = VIR_BUFFER_INITIALIZER;
if (VIR_ALLOC(addnhostsfile) < 0)
return NULL;
addnhostsfile->hosts = NULL;
addnhostsfile->nhosts = 0;
- if (virAsprintf(&addnhostsfile->path, "%s/%s.%s", config_dir, name,
- DNSMASQ_ADDNHOSTSFILE_SUFFIX) < 0)
+ virBufferAsprintf(&buf, "%s", config_dir);
+ virBufferEscapeString(&buf, "/%s", name);
+ virBufferAsprintf(&buf, ".%s", DNSMASQ_ADDNHOSTSFILE_SUFFIX);
+
+ if (virBufferCheckError(&buf) < 0)
+ goto error;
+
+ if (!(addnhostsfile->path = virBufferContentAndReset(&buf)))
goto error;
return addnhostsfile;
error:
+ virBufferFreeAndReset(&buf);
addnhostsFree(addnhostsfile);
return NULL;
}
const char *config_dir)
{
dnsmasqHostsfile *hostsfile;
+ virBuffer buf = VIR_BUFFER_INITIALIZER;
if (VIR_ALLOC(hostsfile) < 0)
return NULL;
hostsfile->hosts = NULL;
hostsfile->nhosts = 0;
- if (virAsprintf(&hostsfile->path, "%s/%s.%s", config_dir, name,
- DNSMASQ_HOSTSFILE_SUFFIX) < 0)
- goto error;
+ virBufferAsprintf(&buf, "%s", config_dir);
+ virBufferEscapeString(&buf, "/%s", name);
+ virBufferAsprintf(&buf, ".%s", DNSMASQ_HOSTSFILE_SUFFIX);
+ if (virBufferCheckError(&buf) < 0)
+ goto error;
+
+ if (!(hostsfile->path = virBufferContentAndReset(&buf)))
+ goto error;
return hostsfile;
error:
+ virBufferFreeAndReset(&buf);
hostsfileFree(hostsfile);
return NULL;
}
char *virPidFileBuildPath(const char *dir, const char* name)
{
- char *pidfile;
+ virBuffer buf = VIR_BUFFER_INITIALIZER;
- if (virAsprintf(&pidfile, "%s/%s.pid", dir, name) < 0)
- return NULL;
+ virBufferAsprintf(&buf, "%s", dir);
+ virBufferEscapeString(&buf, "/%s.pid", name);
- return pidfile;
+ if (virBufferCheckError(&buf) < 0)
+ goto error;
+
+ return virBufferContentAndReset(&buf);
+
+ error:
+ virBufferFreeAndReset(&buf);
+ return NULL;
}
--- /dev/null
+##WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
+##OVERWRITTEN AND LOST. Changes to this configuration should be made using:
+## virsh net-edit default"with"quotes"
+## or other application using the libvirt API.
+##
+## dnsmasq conf file created by libvirt
+strict-order
+except-interface=lo
+bind-interfaces
+listen-address=192.168.122.1
+listen-address=192.168.123.1
+listen-address=fc00:db8:ac10:fe01::1
+listen-address=fc00:db8:ac10:fd01::1
+listen-address=10.24.10.1
+srv-host=_name._tcp
+dhcp-range=192.168.122.2,192.168.122.254
+dhcp-no-override
+dhcp-lease-max=253
+dhcp-hostsfile=/var/lib/libvirt/dnsmasq/default"with"quotes".hostsfile
+addn-hosts=/var/lib/libvirt/dnsmasq/default"with"quotes".addnhosts
--- /dev/null
+<network>
+ <name>default"with"quotes"</name>
+ <uuid>81ff0d90-c91e-6742-64da-4a736edb9a9b</uuid>
+ <forward dev='eth1' mode='nat'>
+ <interface dev='eth1'/>
+ </forward>
+ <bridge name='virbr0' stp='on' delay='0'/>
+ <dns>
+ <srv service='name' protocol='tcp'/>
+ </dns>
+ <ip address='192.168.122.1' netmask='255.255.255.0'>
+ <dhcp>
+ <range start='192.168.122.2' end='192.168.122.254'/>
+ <host mac='00:16:3e:77:e2:ed' name='a.example.com' ip='192.168.122.10'/>
+ <host mac='00:16:3e:3e:a9:1a' name='b.example.com' ip='192.168.122.11'/>
+ </dhcp>
+ </ip>
+ <ip family='ipv4' address='192.168.123.1' netmask='255.255.255.0'>
+ </ip>
+ <ip family='ipv6' address='fc00:db8:ac10:fe01::1' prefix='64'>
+ </ip>
+ <ip family='ipv6' address='fc00:db8:ac10:fd01::1' prefix='64'>
+ </ip>
+ <ip family='ipv4' address='10.24.10.1'>
+ </ip>
+</network>
DO_TEST("netboot-network", restricted);
DO_TEST("netboot-proxy-network", restricted);
DO_TEST("nat-network-dns-srv-record-minimal", restricted);
+ DO_TEST("nat-network-name-with-quotes", restricted);
DO_TEST("routed-network", full);
DO_TEST("nat-network", dhcpv6);
DO_TEST("nat-network-dns-txt-record", full);