fix int overflow on 32 bit in handshake parsing

This commit is contained in:
Marten Seemann
2016-06-02 23:28:13 +07:00
parent cf382be954
commit c6f4d9720f

View File

@@ -36,10 +36,10 @@ func ParseHandshakeMessage(r utils.ReadStream) (Tag, map[Tag][]byte, error) {
resultMap := map[Tag][]byte{}
dataStart := 0
var dataStart uint32
for indexPos := 0; indexPos < int(nPairs)*8; indexPos += 8 {
tag := Tag(binary.LittleEndian.Uint32(index[indexPos : indexPos+4]))
dataEnd := int(binary.LittleEndian.Uint32(index[indexPos+4 : indexPos+8]))
dataEnd := uint32(binary.LittleEndian.Uint32(index[indexPos+4 : indexPos+8]))
dataLen := dataEnd - dataStart
if dataLen > protocol.CryptoParameterMaxLength {