www-servers/nginx: add segfault fix to 1.10.0 for http_upstream_check (bug 582316)
authorZac Medico <zmedico@gentoo.org>
Sat, 7 May 2016 03:11:26 +0000 (20:11 -0700)
committerZac Medico <zmedico@gentoo.org>
Sat, 7 May 2016 03:15:06 +0000 (20:15 -0700)
Package-Manager: portage-2.2.28

www-servers/nginx/files/check-0.3.0-segfault-on-reload.patch [new file with mode: 0644]
www-servers/nginx/nginx-1.10.0.ebuild

diff --git a/www-servers/nginx/files/check-0.3.0-segfault-on-reload.patch b/www-servers/nginx/files/check-0.3.0-segfault-on-reload.patch
new file mode 100644 (file)
index 0000000..f556aab
--- /dev/null
@@ -0,0 +1,26 @@
+From 2a52fbf565d0d5bdc9f25382b5af6e952216831f Mon Sep 17 00:00:00 2001
+From: Dmitry Saprykin <saprykin.dmitry@gmail.com>
+Date: Fri, 5 Dec 2014 11:46:18 +0300
+Subject: [PATCH] * serfault on reload fix
+
+---
+ ngx_http_upstream_check_module.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/ngx_http_upstream_check_module.c b/ngx_http_upstream_check_module.c
+index e2a4030..41aa63a 100644
+--- a/ngx_http_upstream_check_module.c
++++ b/ngx_http_upstream_check_module.c
+@@ -3991,9 +3991,9 @@ ngx_http_upstream_check_find_shm_peer(ngx_http_upstream_check_peers_shm_t *p,
+             continue;
+         }
+-        if ((ngx_memcmp(addr->sockaddr, peer_shm->sockaddr, addr->socklen) == 0)
+-            && (ngx_strncmp(upstream_name->data, peer_shm->upstream_name->data,
+-                            upstream_name->len) == 0)) {
++        if (ngx_memcmp(addr->sockaddr, peer_shm->sockaddr, addr->socklen) == 0
++            && upstream_name->len == peer_shm->upstream_name->len
++            && ngx_strncmp(upstream_name->data, peer_shm->upstream_name->data, upstream_name->len) == 0) {
+             return peer_shm;
+         }
+     }
index 159f891dcad3322fb4f41ce6edf9901ebc5993d3..ef851c40213a6355b53bdaf52290da19c6d1878f 100644 (file)
@@ -329,6 +329,9 @@ src_prepare() {
 
        if use nginx_modules_http_upstream_check; then
                eapply -p0 "${FILESDIR}/check-1.9.2".patch
+               pushd "${HTTP_UPSTREAM_CHECK_MODULE_WD}" >/dev/null
+               eapply -p1 "${FILESDIR}/check-0.3.0-segfault-on-reload".patch
+               popd >/dev/null
        fi
 
        if use nginx_modules_http_lua; then