From: Christopher Faulet Date: Thu, 4 Jul 2019 19:22:34 +0000 (+0200) Subject: BUG/MINOR: mux-h1: Don't process input or ouput if an error occurred X-Git-Tag: v2.1-dev1~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0e54d547f11a7b51fa27c334f666c312d0c2625a;p=thirdparty%2Fhaproxy.git BUG/MINOR: mux-h1: Don't process input or ouput if an error occurred It is useless to proceed if an error already occurred. Instead, it is better to wait it will be catched by the stream or the connection, depending on which is the first one to detect it. This patch must be backported to 2.0. --- diff --git a/src/mux_h1.c b/src/mux_h1.c index 89d9b7b651..8712d2a0f8 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -1390,6 +1390,9 @@ static size_t h1_process_input(struct h1c *h1c, struct buffer *buf, size_t count } data = htx->data; + if (h1s->flags & errflag) + goto end; + do { size_t used = htx_used_space(htx); @@ -1507,6 +1510,9 @@ static size_t h1_process_output(struct h1c *h1c, struct buffer *buf, size_t coun errflag = H1S_F_REQ_ERROR; } + if (h1s->flags & errflag) + goto end; + /* the htx is non-empty thus has at least one block */ blk = htx_get_head_blk(chn_htx);