fix a panic in stream with large window updates

fixes #143
This commit is contained in:
Lucas Clemente
2016-05-25 13:12:06 +02:00
parent 9e0d211f5e
commit 17865dbba7
2 changed files with 12 additions and 2 deletions

View File

@@ -200,7 +200,7 @@ func (s *stream) Write(p []byte) (int, error) {
return 0, s.err
}
dataLen := utils.Min(len(p), int(remainingBytesInWindow))
dataLen := utils.MinByteCount(protocol.ByteCount(len(p)), remainingBytesInWindow)
data := make([]byte, dataLen)
copy(data, p)
err := s.session.queueStreamFrame(&frames.StreamFrame{
@@ -213,7 +213,7 @@ func (s *stream) Write(p []byte) (int, error) {
return 0, err
}
dataWritten += dataLen
dataWritten += int(dataLen) // We cannot have written more than the int range
s.flowController.AddBytesSent(protocol.ByteCount(dataLen))
if s.contributesToConnectionFlowControl {
s.connectionFlowController.AddBytesSent(protocol.ByteCount(dataLen))