BUG/MINOR: mux-h1: Don't release unallocated CS on error path

cs_free() must not be called when we fail to allocate the conn-stream in
h1s_new_cs() function. This bug was introduced by the commit cda94accb
("MAJOR: stream/conn_stream: Move the stream-interface into the
conn-stream").

It is 2.6-specific, no backport is needed.
This commit is contained in:
Christopher Faulet 2022-03-22 18:45:55 +01:00
parent f1de1b51ca
commit 91449b0351

View File

@ -735,7 +735,7 @@ static struct conn_stream *h1s_new_cs(struct h1s *h1s, struct buffer *input)
if (!stream_new(h1c->conn->owner, cs, input)) {
TRACE_DEVEL("leaving on stream creation failure", H1_EV_STRM_NEW|H1_EV_STRM_END|H1_EV_STRM_ERR, h1c->conn, h1s);
goto err;
goto err_cs;
}
HA_ATOMIC_INC(&h1c->px_counters->open_streams);
@ -745,8 +745,9 @@ static struct conn_stream *h1s_new_cs(struct h1s *h1s, struct buffer *input)
TRACE_LEAVE(H1_EV_STRM_NEW, h1c->conn, h1s);
return cs;
err:
err_cs:
cs_free(cs);
err:
h1s->cs = NULL;
TRACE_DEVEL("leaving on error", H1_EV_STRM_NEW|H1_EV_STRM_ERR, h1c->conn, h1s);
return NULL;