From: Michael Hoisie Date: Tue, 4 Jan 2011 16:55:13 +0000 (-0500) Subject: net: fix close of Listener X-Git-Tag: weekly.2011-01-06~30 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=ed1cbca81fcf20bc933a81bb4aa7281b34a96e55;p=gostls13.git net: fix close of Listener Fixes #1375. R=rsc, r CC=golang-dev https://golang.org/cl/3731048 --- diff --git a/src/pkg/net/fd.go b/src/pkg/net/fd.go index b2e24f5986..5adaf1df3c 100644 --- a/src/pkg/net/fd.go +++ b/src/pkg/net/fd.go @@ -567,6 +567,10 @@ func (fd *netFD) accept(toAddr func(syscall.Sockaddr) Addr) (nfd *netFD, err os. var s, e int var sa syscall.Sockaddr for { + if fd.closing { + syscall.ForkLock.RUnlock() + return nil, os.EINVAL + } s, sa, e = syscall.Accept(fd.sysfd) if e != syscall.EAGAIN { break