BUG/MINOR: backend: check that the mux installed properly

The return value from conn_install_mux() was not checked, so if an
inconsistency happens in the code, or a memory allocation fails while
initializing the mux, we can crash while using an uninitialized mux.
In practice the code inconsistency does not really happen since we
cannot configure such a situation, except during development, but
the out of memory condition could definitely happen.

This should be backported to 1.8 (the code is a bit different there,
there are two calls to conn_install_mux()).
This commit is contained in:
Willy Tarreau 2018-10-03 10:20:19 +02:00
parent f11ca5e7a4
commit 33dd4ef812

View File

@ -1189,7 +1189,8 @@ int connect_server(struct stream *s)
else
return SF_ERR_INTERNAL; /* how did we get there ? */
conn_install_mux_be(srv_conn, srv_cs);
if (conn_install_mux_be(srv_conn, srv_cs) < 0)
return SF_ERR_INTERNAL;
/* process the case where the server requires the PROXY protocol to be sent */
srv_conn->send_proxy_ofs = 0;