diff options
| author | Andy Pan <panjf2000@gmail.com> | 2022-09-25 13:14:24 +0800 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2022-09-26 14:30:17 +0000 |
| commit | 5036ed26bd241cb8eadf4d0f00de6b9d3449bf87 (patch) | |
| tree | ededc56d344b3147f7d87196abc725a60c81d96b /src/syscall | |
| parent | 1e91ffc897efb1ed298753c08f086fbc8f725025 (diff) | |
| download | go-5036ed26bd241cb8eadf4d0f00de6b9d3449bf87.tar.xz | |
syscall: check if to is nil to prevent panic from Sendto
Fixes #55845
Change-Id: If30263b7d34829c40e6606846115ec520f351f2c
Reviewed-on: https://go-review.googlesource.com/c/go/+/433504
Run-TryBot: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Andy Pan <panjf2000@gmail.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src/syscall')
| -rw-r--r-- | src/syscall/syscall_unix.go | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/syscall/syscall_unix.go b/src/syscall/syscall_unix.go index 3133becd7c..c59d4fcf95 100644 --- a/src/syscall/syscall_unix.go +++ b/src/syscall/syscall_unix.go @@ -437,11 +437,17 @@ func sendtoInet6(fd int, p []byte, flags int, to *SockaddrInet6) (err error) { } func Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) { - ptr, n, err := to.sockaddr() - if err != nil { - return err + var ( + ptr unsafe.Pointer + salen _Socklen + ) + if to != nil { + ptr, salen, err = to.sockaddr() + if err != nil { + return err + } } - return sendto(fd, p, flags, ptr, n) + return sendto(fd, p, flags, ptr, salen) } func SetsockoptByte(fd, level, opt int, value byte) (err error) { |
