From: database64128 Date: Fri, 1 Aug 2025 16:34:48 +0000 (+0800) Subject: syscall: permit nil destination address in sendmsgN{Inet4,Inet6} X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=3871c0d84d214bdecc370c8717c71a9a155a363f;p=gostls13.git syscall: permit nil destination address in sendmsgN{Inet4,Inet6} For #74841 Change-Id: Ic3ef9c61a89bc8bc0594724a6d94eed91fb63eae Reviewed-on: https://go-review.googlesource.com/c/go/+/692435 Reviewed-by: Damien Neil Reviewed-by: Tobias Klauser LUCI-TryBot-Result: Go LUCI Reviewed-by: David Chase Auto-Submit: Tobias Klauser --- diff --git a/src/syscall/syscall_unix.go b/src/syscall/syscall_unix.go index ecd5952975..7de2272b59 100644 --- a/src/syscall/syscall_unix.go +++ b/src/syscall/syscall_unix.go @@ -410,17 +410,25 @@ func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) } func sendmsgNInet4(fd int, p, oob []byte, to *SockaddrInet4, flags int) (n int, err error) { - ptr, salen, err := to.sockaddr() - if err != nil { - return 0, err + var ptr unsafe.Pointer + var salen _Socklen + if to != nil { + ptr, salen, err = to.sockaddr() + if err != nil { + return 0, err + } } return sendmsgN(fd, p, oob, ptr, salen, flags) } func sendmsgNInet6(fd int, p, oob []byte, to *SockaddrInet6, flags int) (n int, err error) { - ptr, salen, err := to.sockaddr() - if err != nil { - return 0, err + var ptr unsafe.Pointer + var salen _Socklen + if to != nil { + ptr, salen, err = to.sockaddr() + if err != nil { + return 0, err + } } return sendmsgN(fd, p, oob, ptr, salen, flags) }