summaryrefslogtreecommitdiff
path: root/libgo/go/crypto/tls/handshake_messages.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/crypto/tls/handshake_messages.go')
-rw-r--r--libgo/go/crypto/tls/handshake_messages.go7
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])