From 74b84b8eac861ef98846df93475a5c3f6dfbd543 Mon Sep 17 00:00:00 2001 From: shizhx Date: Wed, 7 Sep 2022 12:27:05 +0800 Subject: [PATCH] packet: fix misusing of defer defer capture arguments at once, so modify arguments after defer line not works --- packet/conn.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packet/conn.go b/packet/conn.go index 4d2a2ccfd..8d020fe92 100644 --- a/packet/conn.go +++ b/packet/conn.go @@ -90,7 +90,9 @@ func (c *Conn) ReadPacket() ([]byte, error) { func (c *Conn) ReadPacketReuseMem(dst []byte) ([]byte, error) { // Here we use `sync.Pool` to avoid allocate/destroy buffers frequently. buf := utils.BytesBufferGet() - defer utils.BytesBufferPut(buf) + defer func() { + utils.BytesBufferPut(buf) + }() if err := c.ReadPacketTo(buf); err != nil { return nil, errors.Trace(err)