summaryrefslogtreecommitdiff
path: root/sys-cluster/keepalived/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-01-19 20:11:46 +0000
committerV3n3RiX <venerix@redcorelinux.org>2018-01-19 20:11:46 +0000
commit5b5df25227111ef465caf5c52bcfb66dac3219cd (patch)
tree31b713cac6188358125cbb66b8804030328740f0 /sys-cluster/keepalived/files
parent02e2208f46f4e2c00fb9743cbc47350bdd233bfa (diff)
gentoo resync : 19.01.2018
Diffstat (limited to 'sys-cluster/keepalived/files')
-rw-r--r--sys-cluster/keepalived/files/keepalived-1.4.0-fix-no-sorry-segfault.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/sys-cluster/keepalived/files/keepalived-1.4.0-fix-no-sorry-segfault.patch b/sys-cluster/keepalived/files/keepalived-1.4.0-fix-no-sorry-segfault.patch
new file mode 100644
index 000000000000..cbababb39802
--- /dev/null
+++ b/sys-cluster/keepalived/files/keepalived-1.4.0-fix-no-sorry-segfault.patch
@@ -0,0 +1,28 @@
+From 49559856e19a1a9fad590cc640da7df57c6b9a66 Mon Sep 17 00:00:00 2001
+From: Quentin Armitage <quentin@armitage.org.uk>
+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 <quentin@armitage.org.uk>
+---
+ 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) {