From c6f4d9720ff064186e54088c411558a010fa39c6 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Thu, 2 Jun 2016 23:28:13 +0700 Subject: [PATCH] fix int overflow on 32 bit in handshake parsing --- handshake/handshake_message.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handshake/handshake_message.go b/handshake/handshake_message.go index 32e8aa58e..9a9aa0334 100644 --- a/handshake/handshake_message.go +++ b/handshake/handshake_message.go @@ -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 {