aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorianwoolf <btw515wolf2@gmail.com>2022-07-28 00:55:31 +0800
committerDamien Neil <dneil@google.com>2022-08-26 22:52:50 +0000
commit333681d6a8cc6f352d42d04bcf26b39a1ea7ef83 (patch)
treee7d966bb88951df4a1db1c5927226563cd423610 /src
parentacabf87127fab93513df46811d5f473ef72905b1 (diff)
downloadgo-333681d6a8cc6f352d42d04bcf26b39a1ea7ef83.tar.xz
net: Resolver.LookupIP return error for empty string
Fixes #53995 Change-Id: Ib0de237b57382feb6b8070f2310945aef6c7db01 Reviewed-on: https://go-review.googlesource.com/c/go/+/419734 Reviewed-by: Damien Neil <dneil@google.com> Reviewed-by: David Chase <drchase@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Damien Neil <dneil@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/net/lookup.go5
-rw-r--r--src/net/lookup_test.go11
2 files changed, 16 insertions, 0 deletions
diff --git a/src/net/lookup.go b/src/net/lookup.go
index b283c67945..969c902b1d 100644
--- a/src/net/lookup.go
+++ b/src/net/lookup.go
@@ -224,10 +224,15 @@ func (r *Resolver) LookupIP(ctx context.Context, network, host string) ([]IP, er
default:
return nil, UnknownNetworkError(network)
}
+
+ if host == "" {
+ return nil, &DNSError{Err: errNoSuchHost.Error(), Name: host, IsNotFound: true}
+ }
addrs, err := r.internetAddrList(ctx, afnet, host)
if err != nil {
return nil, err
}
+
ips := make([]IP, 0, len(addrs))
for _, addr := range addrs {
ips = append(ips, addr.(*IPAddr).IP)
diff --git a/src/net/lookup_test.go b/src/net/lookup_test.go
index 3a31f56bea..24d4fbf66d 100644
--- a/src/net/lookup_test.go
+++ b/src/net/lookup_test.go
@@ -1208,6 +1208,17 @@ func TestLookupIPAddrConcurrentCallsForNetworks(t *testing.T) {
wg.Wait()
}
+// Issue 53995: Resolver.LookupIP should return error for empty host name.
+func TestResolverLookupIPWithEmptyHost(t *testing.T) {
+ _, err := DefaultResolver.LookupIP(context.Background(), "ip", "")
+ if err == nil {
+ t.Fatal("DefaultResolver.LookupIP for empty host success, want no host error")
+ }
+ if !strings.HasSuffix(err.Error(), errNoSuchHost.Error()) {
+ t.Fatalf("lookup error = %v, want %v", err, errNoSuchHost)
+ }
+}
+
func TestWithUnexpiredValuesPreserved(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())