@@ -27,9 +27,14 @@ func (this *AuthChunkReader) Read() (*alloc.Buffer, error) {
}
length := serial.BytesLiteral(buffer.Value[:2]).Uint16Value()
- if length == 4 { // Length of authentication bytes.
+ if length <= 4 { // Length of authentication bytes.
return nil, io.EOF
+ if length > 8*1024 {
+ buffer.Release()
+ buffer = alloc.NewLargeBuffer()
+ }
+ buffer.SliceBack(16)
if _, err := io.ReadFull(this.reader, buffer.Value[:length]); err != nil {
buffer.Release()
return nil, err