Skip to content

Commit 36df9ef

Browse files
serious-snowwangjian
and
wangjian
authored
bug: fix Conn.Next and Conn.Peek panic on Unix (#616)
Co-authored-by: wangjian <[email protected]>
1 parent 5346527 commit 36df9ef

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

connection_unix.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -325,13 +325,13 @@ func (c *conn) Next(n int) (buf []byte, err error) {
325325
}
326326
head, tail := c.inboundBuffer.Peek(n)
327327
defer c.inboundBuffer.Discard(n) //nolint:errcheck
328-
if len(head) == n {
328+
if len(head) >= n {
329329
return head[:n], err
330330
}
331331
c.loop.cache.Reset()
332332
c.loop.cache.Write(head)
333333
c.loop.cache.Write(tail)
334-
if inBufferLen == n {
334+
if inBufferLen >= n {
335335
return c.loop.cache.Bytes(), err
336336
}
337337

@@ -352,13 +352,13 @@ func (c *conn) Peek(n int) (buf []byte, err error) {
352352
return c.buffer[:n], err
353353
}
354354
head, tail := c.inboundBuffer.Peek(n)
355-
if len(head) == n {
355+
if len(head) >= n {
356356
return head[:n], err
357357
}
358358
c.loop.cache.Reset()
359359
c.loop.cache.Write(head)
360360
c.loop.cache.Write(tail)
361-
if inBufferLen == n {
361+
if inBufferLen >= n {
362362
return c.loop.cache.Bytes(), err
363363
}
364364

0 commit comments

Comments
 (0)