diff --git a/include/proto/buffers.h b/include/proto/buffers.h index dc9961a2b..95e1ab374 100644 --- a/include/proto/buffers.h +++ b/include/proto/buffers.h @@ -99,12 +99,13 @@ static inline void buffer_forward(struct buffer *buf, unsigned int bytes) { unsigned int data_left; - buf->to_forward += bytes; data_left = buf->l - buf->send_max; - if (data_left > buf->to_forward) - data_left = buf->to_forward; + if (data_left >= bytes) { + buf->send_max += bytes; + return; + } - buf->to_forward -= data_left; + buf->to_forward += bytes - data_left; buf->send_max += data_left; }