]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: permit nil destination address in sendmsgN{Inet4,Inet6}
authordatabase64128 <free122448@hotmail.com>
Fri, 1 Aug 2025 16:34:48 +0000 (00:34 +0800)
committerGopher Robot <gobot@golang.org>
Fri, 15 Aug 2025 11:01:41 +0000 (04:01 -0700)
For #74841

Change-Id: Ic3ef9c61a89bc8bc0594724a6d94eed91fb63eae
Reviewed-on: https://go-review.googlesource.com/c/go/+/692435
Reviewed-by: Damien Neil <dneil@google.com>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: David Chase <drchase@google.com>
Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>

src/syscall/syscall_unix.go

index ecd5952975a73d9b34447b5b518f6da301d06ffe..7de2272b591b9500780c3d0925528e20644452a7 100644 (file)
@@ -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)
 }