From 7c5df8ad5c18a9f8b9440dbd1ae4faacf55b452a Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Thu, 5 Dec 2019 10:34:54 -0500 Subject: [PATCH] Allow underscore characters in FQDNs and pointers. Modern DNS records can contain underscores for a number of reasons. In particular, DKIM records involve a "_domainkey" part, https://tools.ietf.org/html/rfc6376 that is rejected by the current "fqdn" and "p" validation routines. Moreover, any SRV records will have a service name prefixed with an underscore: https://tools.ietf.org/html/rfc2782 To recognize these tokens as valid, this commit expands the "fqdn" and "p" regular expressions to allow underscores as the first character in each component of an FQDN. --- valtz | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/valtz b/valtz index c68c120..eebda76 100644 --- a/valtz +++ b/valtz @@ -202,7 +202,7 @@ my %token_validator = ( # check all parts for my $hostpart (split /\./, $s) { - return 1005 unless $hostpart =~ /^[-a-z0-9]+$/i; + return 1005 unless $hostpart =~ /^_?[-a-z0-9]+$/i; return 1006 if $hostpart =~ /^-/; return 1007 if $hostpart =~ /-$/; } @@ -268,7 +268,7 @@ my %token_validator = ( # check all parts for (split /\./, $s) { - return 1005 unless /^[-[a-z0-9]+$/i; + return 1005 unless /^_?[-[a-z0-9]+$/i; return 1006 if /^-/; return 1007 if /-$/; } -- 2.43.2