From 7402776c52292619c55355a402c35aab3b3b7f7e Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 26 Feb 2019 14:45:05 +0100 Subject: [PATCH] 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. --- src/mux_h1.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/mux_h1.c b/src/mux_h1.c index a88722c6d..59784051e 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);