BUG/MINOR: dns: ignore trailing dot
authorLukas Tribus <lukas@ltri.eu>
Thu, 27 Feb 2020 14:47:24 +0000 (15:47 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Fri, 28 Feb 2020 10:11:57 +0000 (11:11 +0100)
As per issue #435 a hostname with a trailing dot confuses our DNS code,
as for a zero length DNS label we emit a null-byte. This change makes us
ignore the zero length label instead.

Must be backported to 1.8.

(cherry picked from commit 81725b867c20a688c3877421383bfe1ba9348a09)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>

src/dns.c

index 10bdf48..3211853 100644 (file)
--- a/src/dns.c
+++ b/src/dns.c
@@ -1208,6 +1208,12 @@ int dns_str_to_dn_label(const char *str, int str_len, char *dn, int dn_len)
                        if (i == offset)
                                return -1;
 
+                       /* ignore trailing dot */
+                       if (i + 2 == str_len) {
+                               i++;
+                               break;
+                       }
+
                        dn[offset] = (i - offset);
                        offset = i+1;
                        continue;