diff --git a/src/internal/poll/fd_windows.go b/src/internal/poll/fd_windows.go index ebb2abcbf81..5d6d78d8bb4 100644 --- a/src/internal/poll/fd_windows.go +++ b/src/internal/poll/fd_windows.go @@ -1422,10 +1422,13 @@ func (fd *FD) WriteMsgInet4(p []byte, oob []byte, sa *syscall.SockaddrInet4) (in if o.rsa == nil { o.rsa = new(syscall.RawSockaddrAny) } - len := sockaddrInet4ToRaw(o.rsa, sa) + var nameLen int32 + if sa != nil { + nameLen = sockaddrInet4ToRaw(o.rsa, sa) + } msg := newWSAMsg(p, oob, 0) msg.Name = (syscall.Pointer)(unsafe.Pointer(o.rsa)) - msg.Namelen = len + msg.Namelen = nameLen n, err := fd.execIO(o, func(o *operation) (qty uint32, err error) { err = windows.WSASendMsg(fd.Sysfd, &msg, 0, nil, &o.o, nil) return qty, err @@ -1449,9 +1452,12 @@ func (fd *FD) WriteMsgInet6(p []byte, oob []byte, sa *syscall.SockaddrInet6) (in o.rsa = new(syscall.RawSockaddrAny) } msg := newWSAMsg(p, oob, 0) - len := sockaddrInet6ToRaw(o.rsa, sa) + var nameLen int32 + if sa != nil { + nameLen = sockaddrInet6ToRaw(o.rsa, sa) + } msg.Name = (syscall.Pointer)(unsafe.Pointer(o.rsa)) - msg.Namelen = len + msg.Namelen = nameLen n, err := fd.execIO(o, func(o *operation) (qty uint32, err error) { err = windows.WSASendMsg(fd.Sysfd, &msg, 0, nil, &o.o, nil) return qty, err