From 736026d9d302301dcf2dfe75351d2c17b70f6ee7 Mon Sep 17 00:00:00 2001 From: Leo Balduf Date: Sat, 6 Aug 2016 22:43:33 -0400 Subject: [PATCH] fix bytepool out of range panic --- frontends/udp/bytepool/bytepool.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/frontends/udp/bytepool/bytepool.go b/frontends/udp/bytepool/bytepool.go index adc1207..1808687 100644 --- a/frontends/udp/bytepool/bytepool.go +++ b/frontends/udp/bytepool/bytepool.go @@ -27,9 +27,12 @@ func (bp *BytePool) Get() []byte { // Put returns a byte slice to the pool. func (bp *BytePool) Put(b []byte) { + b = b[:cap(b)] // Zero out the bytes. - for i := 0; i < cap(b); i++ { - b[i] = 0x0 + // Apparently this specific expression is optimized by the compiler, see + // github.com/golang/go/issues/5373. + for i := range b { + b[i] = 0 } bp.Pool.Put(b) }