From 6fa7a7ca2b54b24eb14a320550b80069e435c366 Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Wed, 28 Sep 2022 12:47:23 +0200 Subject: [PATCH] windows: allow calling WSASendto with nil Sockaddr Same as CL 434535 did for the syscall package. For golang/go#55845 Change-Id: I17f30152ae973b64ac65e08cefd5442e9bf19e2c Reviewed-on: https://go-review.googlesource.com/c/sys/+/435777 TryBot-Result: Gopher Robot Run-TryBot: Benny Siegert Auto-Submit: Tobias Klauser Reviewed-by: Benny Siegert Run-TryBot: Tobias Klauser Reviewed-by: Dmitri Shuralyov --- windows/syscall_windows.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/windows/syscall_windows.go b/windows/syscall_windows.go index 3f2cbb63..5f4f0430 100644 --- a/windows/syscall_windows.go +++ b/windows/syscall_windows.go @@ -1115,9 +1115,13 @@ func Shutdown(fd Handle, how int) (err error) { } func WSASendto(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to Sockaddr, overlapped *Overlapped, croutine *byte) (err error) { - rsa, l, err := to.sockaddr() - if err != nil { - return err + var rsa unsafe.Pointer + var l int32 + if to != nil { + rsa, l, err = to.sockaddr() + if err != nil { + return err + } } return WSASendTo(s, bufs, bufcnt, sent, flags, (*RawSockaddrAny)(unsafe.Pointer(rsa)), l, overlapped, croutine) }