]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MEDIUM: stream: Don't call mux .ctl() callback if not implemented
authorChristopher Faulet <cfaulet@haproxy.com>
Tue, 14 Nov 2023 18:18:53 +0000 (19:18 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Tue, 14 Nov 2023 18:21:52 +0000 (19:21 +0100)
The commit 5ff7d2276 ("BUG/MEDIUM: stream: Properly handle abortonclose when set
on backend only") introduced a regression. Not all multiplexer implement the
.ctl() callback function. Thus we must be sure this callback function is defined
first to call it.

This patch should fix a crash reported by Tristan in the issue #2095. It must be
backported as far as 2.2, with the commit above.

src/stream.c

index 14060b2e9de06c59cc2718c3830837256f239d26..497e1d83f54d3bc46061c30422a4e219155eb9d2 100644 (file)
@@ -2296,7 +2296,7 @@ struct task *process_stream(struct task *t, void *context, unsigned int state)
                                if (s->be->options & PR_O_ABRT_CLOSE) {
                                        struct connection *conn = sc_conn(scf);
 
-                                       if (conn)
+                                       if (conn && conn->mux && conn->mux->ctl)
                                                conn->mux->ctl(conn, MUX_SUBS_RECV, NULL);
                                }
                        }