t.Errorf("Lookup after expiry: Got %v want nil", g)
}
}
+
+// Issue 31586: don't crash on null byte in name
+func TestLookupNullByte(t *testing.T) {
+ testenv.MustHaveExternalNetwork(t)
+ testenv.SkipFlakyNet(t)
+ _, err := LookupHost("foo\x00bar") // used to crash on Windows
+ if err == nil {
+ t.Errorf("unexpected success")
+ }
+}
Protocol: syscall.IPPROTO_IP,
}
var result *syscall.AddrinfoW
- e := syscall.GetAddrInfoW(syscall.StringToUTF16Ptr(name), nil, &hints, &result)
+ name16p, err := syscall.UTF16PtrFromString(name)
+ if err != nil {
+ return nil, &DNSError{Name: name, Err: err.Error()}
+ }
+ e := syscall.GetAddrInfoW(name16p, nil, &hints, &result)
if e != nil {
err := winError("getaddrinfow", e)
dnsError := &DNSError{Err: err.Error(), Name: name}