fix an error reading n-byte integers

This commit is contained in:
Lucas Clemente
2016-04-11 14:41:21 +02:00
parent f293b525da
commit df96797e9c
3 changed files with 21 additions and 13 deletions

View File

@@ -56,12 +56,20 @@ func ParsePublicHeader(b io.ByteReader) (*PublicHeader, error) {
// Version (optional)
if header.VersionFlag {
var v uint64
v, err = utils.ReadUintN(b, 4)
if err != nil {
var b1, b2, b3, b4 uint8
if b1, err = b.ReadByte(); err != nil {
return nil, err
}
header.QuicVersion = uint32(v)
if b2, err = b.ReadByte(); err != nil {
return nil, err
}
if b3, err = b.ReadByte(); err != nil {
return nil, err
}
if b4, err = b.ReadByte(); err != nil {
return nil, err
}
header.QuicVersion = uint32(b4) + uint32(b3)<<8 + uint32(b2)<<16 + uint32(b1)<<24
}
// Packet number