@@ 83,14 83,14 @@ func parseTransportLayer(data []byte) string {
}
// cypher suites
j = binary.BigEndian.Uint16(data[0:2])
- if len(data) <= int(j) {
+ if len(data) <= int(j)+4 {
return ""
}
data = data[j+2:]
// skip comp method
j = uint16(data[0])
- if len(data) <= int(j) {
+ if len(data) <= int(j)+4 {
return ""
}
data = data[j+1:]
@@ 107,8 107,14 @@ func parseTransportLayer(data []byte) string {
return ""
}
end := binary.BigEndian.Uint16(data[5:7])
+ if len(data) < int(end)+7 {
+ return ""
+ }
return string(data[7 : 7+end])
} else {
+ if len(data) < 4 {
+ return ""
+ }
data = data[2:]
j = binary.BigEndian.Uint16(data[0:2])
if len(data) <= int(j) {