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()).
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;