From: Christopher Faulet Date: Thu, 11 Dec 2025 14:21:01 +0000 (+0100) Subject: BUG/MEDIUM: http-ana: Properly detect client abort when forwarding response (v2) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a483450fa24a365f21b67296bebcbb10cc336da3;p=thirdparty%2Fhaproxy.git BUG/MEDIUM: http-ana: Properly detect client abort when forwarding response (v2) The first attempt to fix this issue (c672b2a29 "BUG/MINOR: http-ana: Properly detect client abort when forwarding the response") was not fully correct and could be responsible to false report of client abort during the response forwarding. I guess it is possible to truncate the response. Instead, we must also take care that the client closed on its side, by checking SC_FL_EOS flag on the front SC. Indeed, if the client has aborted, this flag should be set. This patch should be backported as far as 2.8. --- diff --git a/src/http_ana.c b/src/http_ana.c index 6296c0ad3..975c296d4 100644 --- a/src/http_ana.c +++ b/src/http_ana.c @@ -2258,7 +2258,7 @@ int http_response_forward_body(struct stream *s, struct channel *res, int an_bit * server abort. */ if (msg->msg_state < HTTP_MSG_ENDING && (s->scb->flags & (SC_FL_EOS|SC_FL_ABRT_DONE))) { - if ((s->scb->flags & (SC_FL_ABRT_DONE|SC_FL_SHUT_DONE)) == (SC_FL_ABRT_DONE|SC_FL_SHUT_DONE)) + if ((s->scf->flags & SC_FL_EOS) && (s->scb->flags & (SC_FL_ABRT_DONE|SC_FL_SHUT_DONE)) == (SC_FL_ABRT_DONE|SC_FL_SHUT_DONE)) goto return_cli_abort; /* If we have some pending data, we continue the processing */ if (htx_is_empty(htx))