mirror of
				https://github.com/coredns/coredns.git
				synced 2025-11-04 10:11:10 +01:00 
			
		
		
		
	Validate zone during normalization (#3165)
This commit is contained in:
		
							parent
							
								
									27f44f60ee
								
							
						
					
					
						commit
						f888c5f7f6
					
				@ -3,6 +3,7 @@ package dnsserver
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"net"
 | 
			
		||||
	"net/url"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"github.com/coredns/coredns/plugin"
 | 
			
		||||
@ -52,7 +53,13 @@ func normalizeZone(str string) (zoneAddr, error) {
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return zoneAddr{Zone: dns.Fqdn(host), Port: port, Transport: trans, IPNet: ipnet}, nil
 | 
			
		||||
	z := zoneAddr{Zone: dns.Fqdn(host), Port: port, Transport: trans, IPNet: ipnet}
 | 
			
		||||
	_, err = url.ParseRequestURI(z.String())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return zoneAddr{}, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return z, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// SplitProtocolHostPort splits a full formed address like "dns://[::1]:53" into parts.
 | 
			
		||||
 | 
			
		||||
@ -28,6 +28,7 @@ func TestNormalizeZone(t *testing.T) {
 | 
			
		||||
		{"https://.:8443", "https://.:8443", false},
 | 
			
		||||
		{"https://..", "://:", true},
 | 
			
		||||
		{"https://.:", "://:", true},
 | 
			
		||||
		{"dns://.:1053{.:53", "://:", true},
 | 
			
		||||
	} {
 | 
			
		||||
		addr, err := normalizeZone(test.input)
 | 
			
		||||
		actual := addr.String()
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user