From: Christopher Faulet Date: Tue, 26 Feb 2019 13:45:05 +0000 (+0100) Subject: BUG/MINOR: mux-h1: Always initilize h1m variable in h1_process_input() X-Git-Tag: v2.0-dev1~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7402776c52292619c55355a402c35aab3b3b7f7e;p=thirdparty%2Fhaproxy.git BUG/MINOR: mux-h1: Always initilize h1m variable in h1_process_input() It is used at the end of the function to know if the end of the message was reached. So we must be sure to always initialize it. This patch must be backported to 1.9. --- diff --git a/src/mux_h1.c b/src/mux_h1.c index a88722c6d2..59784051ea 100644 --- a/src/mux_h1.c +++ b/src/mux_h1.c @@ -1323,11 +1323,6 @@ static size_t h1_process_input(struct h1c *h1c, struct buffer *buf, int flags) int errflag; htx = htx_from_buf(buf); - data = htx->data; - count = b_data(&h1c->ibuf); - if (!count) - goto end; - rsv = ((flags & CO_RFL_KEEP_RSV) ? global.tune.maxrewrite : 0); if (!conn_is_back(h1c->conn)) { h1m = &h1s->req; @@ -1338,6 +1333,12 @@ static size_t h1_process_input(struct h1c *h1c, struct buffer *buf, int flags) errflag = H1S_F_RES_ERROR; } + data = htx->data; + count = b_data(&h1c->ibuf); + if (!count) + goto end; + rsv = ((flags & CO_RFL_KEEP_RSV) ? global.tune.maxrewrite : 0); + do { if (h1m->state <= H1_MSG_LAST_LF) { ret = h1_process_headers(h1s, h1m, htx, &h1c->ibuf, &total, count);