From f6b00fba05bf97f993a2d3e2c51f595ca4f37fdb Mon Sep 17 00:00:00 2001 From: Burkov Egor Date: Mon, 10 Feb 2025 09:21:46 +0300 Subject: [PATCH] fix: Add handler for EndlessReader possible infinite loop --- msgp/circular.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/msgp/circular.go b/msgp/circular.go index 5d2408e5..6e6afd86 100644 --- a/msgp/circular.go +++ b/msgp/circular.go @@ -14,8 +14,12 @@ type EndlessReader struct { offset int } -// NewEndlessReader returns a new endless reader +// NewEndlessReader returns a new endless reader. +// Buffer b cannot be empty func NewEndlessReader(b []byte, tb timer) *EndlessReader { + if len(b) == 0 { + panic("EndlessReader cannot be of zero length") + } // Double until we reach 4K. for len(b) < 4<<10 { b = append(b, b...)