diff options
Diffstat (limited to 'vendor/golang.org/x/net/internal/socket')
| -rw-r--r-- | vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go | 18 | ||||
| -rw-r--r-- | vendor/golang.org/x/net/internal/socket/msghdr_linux.go | 3 | 
2 files changed, 17 insertions, 4 deletions
diff --git a/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go b/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go index 0bfcf7afc..41883c530 100644 --- a/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go +++ b/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go @@ -172,7 +172,23 @@ type mmsgTmpsPool struct {  }  func (p *mmsgTmpsPool) Get() *mmsgTmps { -	return p.p.Get().(*mmsgTmps) +	m := p.p.Get().(*mmsgTmps) +	// Clear fields up to the len (not the cap) of the slice, +	// assuming that the previous caller only used that many elements. +	for i := range m.packer.sockaddrs { +		m.packer.sockaddrs[i] = 0 +	} +	m.packer.sockaddrs = m.packer.sockaddrs[:0] +	for i := range m.packer.vs { +		m.packer.vs[i] = iovec{} +	} +	m.packer.vs = m.packer.vs[:0] +	for i := range m.packer.hs { +		m.packer.hs[i].Len = 0 +		m.packer.hs[i].Hdr = msghdr{} +	} +	m.packer.hs = m.packer.hs[:0] +	return m  }  func (p *mmsgTmpsPool) Put(tmps *mmsgTmps) { diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_linux.go b/vendor/golang.org/x/net/internal/socket/msghdr_linux.go index c3c7cc4c8..5a38798cc 100644 --- a/vendor/golang.org/x/net/internal/socket/msghdr_linux.go +++ b/vendor/golang.org/x/net/internal/socket/msghdr_linux.go @@ -17,9 +17,6 @@ func (h *msghdr) pack(vs []iovec, bs [][]byte, oob []byte, sa []byte) {  	if sa != nil {  		h.Name = (*byte)(unsafe.Pointer(&sa[0]))  		h.Namelen = uint32(len(sa)) -	} else { -		h.Name = nil -		h.Namelen = 0  	}  }  | 
