Avoid read channel corruption when response size > bufferSize
When receiving a response, what was happening 1. Read bufferSize and it gets assigned to leftdata 2. Read another bufferSize 3. 2 buffers get appended, but leftdata still points to first buffer 4. Process data buffer which contains only complete responses 5. Back to ReadLoop, but leftdata still points to first incomplete buffer causing corrupt data to be processed Solution is to make leftdata nil once we have merged it with the second buffer
这个提交包含在:
父节点
49ea8c0ec1
当前提交
d82da8fd71
@ -104,6 +104,7 @@ ReadLoop:
|
||||
}
|
||||
if len(leftdata) > 0 { // some data left for processing
|
||||
data = append(leftdata, data...)
|
||||
leftdata = nil
|
||||
}
|
||||
for {
|
||||
l := len(data)
|
||||
|
正在加载...
在新工单中引用
屏蔽一个用户