Merge pull request #1328 from lucas-clemente/lucas-clemente-patch-1

Fix unnecessary stack growth when parsing frames
This commit is contained in:
Lucas Clemente
2018-04-30 11:00:17 +02:00
committed by GitHub

View File

@@ -11,12 +11,10 @@ import (
// ParseNextFrame parses the next frame
// It skips PADDING frames.
func ParseNextFrame(r *bytes.Reader, hdr *Header, v protocol.VersionNumber) (Frame, error) {
if r.Len() == 0 {
return nil, nil
}
for r.Len() != 0 {
typeByte, _ := r.ReadByte()
if typeByte == 0x0 { // PADDING frame
return ParseNextFrame(r, hdr, v)
continue
}
r.UnreadByte()
@@ -24,6 +22,8 @@ func ParseNextFrame(r *bytes.Reader, hdr *Header, v protocol.VersionNumber) (Fra
return parseGQUICFrame(r, typeByte, hdr, v)
}
return parseIETFFrame(r, typeByte, v)
}
return nil, nil
}
func parseIETFFrame(r *bytes.Reader, typeByte byte, v protocol.VersionNumber) (Frame, error) {