From: Christopher Faulet Date: Wed, 3 Jun 2026 12:28:27 +0000 (+0200) Subject: BUG/MEDIUM: stream: Don't use small buffer on queuing with a request data filter X-Git-Tag: v3.4.0~6 X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=8b71e1f155dfc89f5ce24cff25ea0c752c2cab16;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: stream: Don't use small buffer on queuing with a request data filter When there is a filter registered on the request data forwarding, we must disable usage of the small buffers. For now it is safer to do so because we don't know if the filter will properly handle the small buffers. In addition, there is a true issue because it is possible to never re-arm the receives in that case because the buffer reserve must be respected. This leads to think a small buffer is always full, even empty one. No backport needed. --- diff --git a/src/stream.c b/src/stream.c index 73feb7ebf..10543f862 100644 --- a/src/stream.c +++ b/src/stream.c @@ -2517,7 +2517,7 @@ struct task *process_stream(struct task *t, void *context, unsigned int state) if (scb->state == SC_ST_ASS && srv && srv->rdr_len && (s->flags & SF_REDIRECTABLE)) http_perform_server_redirect(s, scb); - if (unlikely((s->be->options2 & PR_O2_USE_SBUF_QUEUE) && scb->state == SC_ST_QUE)) { + if (unlikely((s->be->options2 & PR_O2_USE_SBUF_QUEUE) && scb->state == SC_ST_QUE && !HAS_REQ_DATA_FILTERS(s))) { struct buffer sbuf = BUF_NULL; if (IS_HTX_STRM(s)) {