]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: backend: check that the mux installed properly
authorWilly Tarreau <w@1wt.eu>
Wed, 3 Oct 2018 08:20:19 +0000 (10:20 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 3 Oct 2018 08:24:05 +0000 (10:24 +0200)
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()).

src/backend.c

index e66ee4a4b05d730cfe185bb90ab290b16ac480a8..b154b804571172a3d950db3d3cf46d7250102919 100644 (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;