mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 22:01:31 +02:00
BUG/MAJOR: checks: segfault during tcpcheck_main
When using TCP health checks (tcp-check connect), it is possible to crash with a segfault when, for reasons yet to be understood, the protocol family is unknown. In the function tcpcheck_main(), proto is dereferenced without a prior test in case it is NULL, leading to the segfault during proto->connect dereference. The line has been unmodified since it was introduced, in commit 69e273f3fcfbfb9cc0fb5a09668faad66cfbd36b. This was the only use of proto (or more specifically, the return of protocol_by_family()) that was unprotected; all other callsites perform the test for a NULL pointer. This patch should be backported to 1.9, 1.8, 1.7, and 1.6.
This commit is contained in:
parent
06f6811d9f
commit
4bccea9891
@ -2839,7 +2839,7 @@ static int tcpcheck_main(struct check *check)
|
|||||||
cs_attach(cs, check, &check_conn_cb);
|
cs_attach(cs, check, &check_conn_cb);
|
||||||
|
|
||||||
ret = SF_ERR_INTERNAL;
|
ret = SF_ERR_INTERNAL;
|
||||||
if (proto->connect)
|
if (proto && proto->connect)
|
||||||
ret = proto->connect(conn,
|
ret = proto->connect(conn,
|
||||||
1 /* I/O polling is always needed */,
|
1 /* I/O polling is always needed */,
|
||||||
(next && next->action == TCPCHK_ACT_EXPECT) ? 0 : 2);
|
(next && next->action == TCPCHK_ACT_EXPECT) ? 0 : 2);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user