adding breakout after max iterations

This commit is contained in:
Mzack9999 2025-09-01 11:15:57 +02:00
parent dda649773c
commit 882463c462

View File

@ -275,7 +275,16 @@ func (c *Client) readUntil(ctx context.Context, needles ...string) (matched stri
var b strings.Builder var b strings.Builder
tmp := make([]byte, 1) tmp := make([]byte, 1)
// Maximum iteration counter to prevent infinite loops
maxIterations := 20
iterationCount := 0
for { for {
iterationCount++
// if we have iterated more than maxIterations, return
if iterationCount > maxIterations {
return "", b.String(), nil
}
// honor context deadline on every read // honor context deadline on every read
c.setDeadlineFromCtx(ctx, false) c.setDeadlineFromCtx(ctx, false)
_, err := c.rd.Read(tmp) _, err := c.rd.Read(tmp)