internal/socket: handle nil addr in sendMsgs

With the pool to reuse internal allocations for mmsghdrs introduced in
CL 315589, I've accidentally introduced a regression for sending
messages on dialed connections.
Calling sendMsgs with Messages with a nil address would panic during
(*msghdr).pack at msghdr_linux.go:18 when taking address of first
element of 0-sized buffer.
Handle this case by explicitly resetting the Name/Namelen.

Add test cases for writing to connected sockets.

Change-Id: I6d5dac696b7ab103a5290675c56002ede3e7b576
GitHub-Last-Rev: 4be010d03a0bcb86dda667952e3f60f096ebd3cc
GitHub-Pull-Request: golang/net#103
Reviewed-on: https://go-review.googlesource.com/c/net/+/316712
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Trust: Emmanuel Odeke <emmanuel@orijtech.com>
3 files changed
tree: c00ba43a1cbeaf574f8621f6f8f99061cfb9544c
  1. bpf/
  2. context/
  3. dict/
  4. dns/
  5. html/
  6. http/
  7. http2/
  8. icmp/
  9. idna/
  10. internal/
  11. ipv4/
  12. ipv6/
  13. lif/
  14. nettest/
  15. netutil/
  16. proxy/
  17. publicsuffix/
  18. route/
  19. trace/
  20. webdav/
  21. websocket/
  22. xsrftoken/
  23. .gitattributes
  24. .gitignore
  25. AUTHORS
  26. codereview.cfg
  27. CONTRIBUTING.md
  28. CONTRIBUTORS
  29. go.mod
  30. go.sum
  31. LICENSE
  32. PATENTS
  33. README.md
README.md

Go Networking

Go Reference

This repository holds supplementary Go networking libraries.

Download/Install

The easiest way to install is to run go get -u golang.org/x/net. You can also manually git clone the repository to $GOPATH/src/golang.org/x/net.

Report Issues / Send Patches

This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html. The main issue tracker for the net repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/net:” in the subject line, so it is easy to find.