Re: [PATCH] network_conf: Forbid commas in DNS TXT

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

 



On Mon, Feb 23, 2015 at 01:40:25PM +0100, Michal Privoznik wrote:
https://bugzilla.redhat.com/show_bug.cgi?id=1151942

While the restriction doesn't have origin in any RFC, it matters
to us while constructing the dnsmasq config file (or command line
previously). For better picture, this is how the corresponding
part of network XML look like:

 <dns>
   <forwarder addr='8.8.4.4'/>
   <txt name='example' value='example value'/>
 </dns>

And this is how the config file looks like then:

 server=8.8.4.4
 txt-record=example,example value

Now we can see why there can't be any commas in the TXT name.
They are used by dnsmasq to separate @name and @value.

Funny, we have it in the documentation, but the code (which was
pushed back in 2011) didn't reflect that.

Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx>
---
src/conf/network_conf.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)


ACK, might be worth reworking our networkxml2whatever test to do
fail-checks too and add it there.  Not required for this patch,
though.

diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
index dce3360..3d8bf05 100644
--- a/src/conf/network_conf.c
+++ b/src/conf/network_conf.c
@@ -1057,15 +1057,17 @@ virNetworkDNSTxtDefParseXML(const char *networkName,
                            virNetworkDNSTxtDefPtr def,
                            bool partialOkay)
{
+    const char *bad = " ,";
+
    if (!(def->name = virXMLPropString(node, "name"))) {
        virReportError(VIR_ERR_XML_DETAIL,
                       _("missing required name attribute in DNS TXT record "
                         "of network %s"), networkName);
        goto error;
    }
-    if (strchr(def->name, ' ') != NULL) {
+    if (strcspn(def->name, bad) != strlen(def->name)) {
        virReportError(VIR_ERR_XML_DETAIL,
-                       _("prohibited space character in DNS TXT record "
+                       _("prohibited character in DNS TXT record "
                         "name '%s' of network %s"), def->name, networkName);
        goto error;
    }
--
2.0.5

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

Attachment: pgprU4chg3NNO.pgp
Description: PGP signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]