From 3871c0d84d214bdecc370c8717c71a9a155a363f Mon Sep 17 00:00:00 2001 From: database64128 Date: Sat, 2 Aug 2025 00:34:48 +0800 Subject: [PATCH] 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 --- src/syscall/syscall_unix.go | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) 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) } -- 2.51.0