It is unfortunately no surprise :(.
The function validdomainname() in generalfunctions.pl accepts empty strings as valid.
sub validdomainname
{
my $part;
# Checks a domain name against RFC1035 and RFC2181
my $domainname = $_[0];
my @parts = split (/\./, $domainname); # Split domain name at the '.'
foreach $part (@parts) {
# Each part should be at least one character in length
# but no more than 63 characters
if (length ($part) < 1 || length ($part) > 63) {
return 0;}
# Only valid characters are a-z, A-Z, 0-9, _ and -
if ($part !~ /^[a-zA-Z0-9_-]*$/) {
return 0;}
}
return 1;
}
If $domainname is empty, @parts is an array with no elements. So the foreach loop is a nop statement.