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.
diff --git a/src/mux_h1.c b/src/mux_h1.c
index ecdb381..29dee6f 100644
--- a/src/mux_h1.c
+++ b/src/mux_h1.c
@@ -735,7 +735,7 @@
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 @@
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;