From ef60ff38fb55d0a2a0eaaadd23945755258cf609 Mon Sep 17 00:00:00 2001 From: Olivier Houchard Date: Tue, 29 Jan 2019 19:00:33 +0100 Subject: [PATCH] BUG/MEDIUM: peers: Handle mux creation failure. If the mux fails to properly be created by conn_install_mux, fail, instead of silently ignoring it. This should be backported to 1.9. --- src/peers.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/peers.c b/src/peers.c index bca56aa1d..30cf94277 100644 --- a/src/peers.c +++ b/src/peers.c @@ -2314,7 +2314,8 @@ static struct appctx *peer_session_create(struct peers *peers, struct peer *peer memcpy(&conn->addr.to, &peer->addr, sizeof(conn->addr.to)); conn_prepare(conn, peer->proto, peer_xprt(peer)); - conn_install_mux(conn, &mux_pt_ops, cs, s->be, NULL); + if (conn_install_mux(conn, &mux_pt_ops, cs, s->be, NULL) < 0) + goto out_free_cs; si_attach_cs(&s->si[1], cs); s->do_log = NULL; @@ -2328,6 +2329,8 @@ static struct appctx *peer_session_create(struct peers *peers, struct peer *peer return appctx; /* Error unrolling */ +out_free_cs: + cs_free(cs); out_free_conn: conn_free(conn); out_free_strm: