diff options
Diffstat (limited to 'libgo/go/crypto/tls/handshake_messages.go')
-rw-r--r-- | libgo/go/crypto/tls/handshake_messages.go | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/libgo/go/crypto/tls/handshake_messages.go b/libgo/go/crypto/tls/handshake_messages.go index ab8e60ae116..694bd918d85 100644 --- a/libgo/go/crypto/tls/handshake_messages.go +++ b/libgo/go/crypto/tls/handshake_messages.go @@ -802,12 +802,9 @@ func (m *serverHelloMsg) unmarshal(data []byte) bool { } l := int(d[0])<<8 | int(d[1]) d = d[2:] - if len(d) != l { + if len(d) != l || l == 0 { return false } - if l == 0 { - continue - } m.scts = make([][]byte, 0, 3) for len(d) != 0 { @@ -816,7 +813,7 @@ func (m *serverHelloMsg) unmarshal(data []byte) bool { } sctLen := int(d[0])<<8 | int(d[1]) d = d[2:] - if len(d) < sctLen { + if sctLen == 0 || len(d) < sctLen { return false } m.scts = append(m.scts, d[:sctLen]) |