From 49559856e19a1a9fad590cc640da7df57c6b9a66 Mon Sep 17 00:00:00 2001 From: Quentin Armitage Date: Wed, 17 Jan 2018 12:08:07 +0000 Subject: [PATCH] Fix segfault if no sorry server configured for a virtual server Issue #751 identified a segfault in vs_end_handler(), and it transpires that the forwarding method of the sorry server was being checked without first testing that a sorry server had been configured. Signed-off-by: Quentin Armitage --- keepalived/check/check_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keepalived/check/check_parser.c b/keepalived/check/check_parser.c index b2518da7..170e47d4 100644 --- a/keepalived/check/check_parser.c +++ b/keepalived/check/check_parser.c @@ -120,7 +120,7 @@ vs_end_handler(void) /* If the real (sorry) server uses tunnel forwarding, the address family * does not have to match the address family of the virtaul server */ - if (vs->s_svr->forwarding_method != IP_VS_CONN_F_TUNNEL) { + if (vs->s_svr && vs->s_svr->forwarding_method != IP_VS_CONN_F_TUNNEL) { if (vs->af == AF_UNSPEC) vs->af = vs->s_svr->addr.ss_family; else if (vs->af != vs->s_svr->addr.ss_family) {