BUG/MEDIUM: checks: Be sure we have a mux if we created a cs.

In connect_conn_chk(), there were one case we could return with a new
conn_stream created, but no mux attached. With no mux, cs_destroy() would
segfault. Fix that by setting the mux before we can fail.

This should be backported to 1.8.
diff --git a/src/checks.c b/src/checks.c
index 6374720..eaf84a2 100644
--- a/src/checks.c
+++ b/src/checks.c
@@ -1564,25 +1564,23 @@
 		conn->addr.to = s->addr;
 	}
 
+	proto = protocol_by_family(conn->addr.to.ss_family);
+
+	conn_prepare(conn, proto, check->xprt);
+	conn_install_mux(conn, &mux_pt_ops, cs);
+	cs_attach(cs, check, &check_conn_cb);
+	conn->target = &s->obj_type;
+
        if ((conn->addr.to.ss_family == AF_INET) || (conn->addr.to.ss_family == AF_INET6)) {
 		int i = 0;
 
 		i = srv_check_healthcheck_port(check);
-		if (i == 0) {
-			cs->data = check;
+		if (i == 0)
 			return SF_ERR_CHK_PORT;
-		}
 
 		set_host_port(&conn->addr.to, i);
 	}
 
-	proto = protocol_by_family(conn->addr.to.ss_family);
-
-	conn_prepare(conn, proto, check->xprt);
-	conn_install_mux(conn, &mux_pt_ops, cs);
-	cs_attach(cs, check, &check_conn_cb);
-	conn->target = &s->obj_type;
-
 	/* no client address */
 	clear_addr(&conn->addr.from);