From: Brad Fitzpatrick Date: Wed, 16 Apr 2014 02:40:00 +0000 (-0700) Subject: crypto/tls: don't block on Read of zero bytes X-Git-Tag: go1.3beta1~64 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=853c99ddb8dc25ca361f1efdd65a9b371cc39fcb;p=gostls13.git crypto/tls: don't block on Read of zero bytes Fixes #7775 LGTM=rsc R=agl, rsc CC=golang-codereviews https://golang.org/cl/88340043 --- diff --git a/src/pkg/crypto/tls/conn.go b/src/pkg/crypto/tls/conn.go index 000b23cbca..550bc7f8fe 100644 --- a/src/pkg/crypto/tls/conn.go +++ b/src/pkg/crypto/tls/conn.go @@ -884,6 +884,11 @@ func (c *Conn) Read(b []byte) (n int, err error) { if err = c.Handshake(); err != nil { return } + if len(b) == 0 { + // Put this after Handshake, in case people were calling + // Read(nil) for the side effect of the Handshake. + return + } c.in.Lock() defer c.in.Unlock()