commit lighttpd for openSUSE:Factory
Hello community, here is the log from the commit of package lighttpd for openSUSE:Factory checked in at 2017-01-25 23:26:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/lighttpd (Old) and /work/SRC/openSUSE:Factory/.lighttpd.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "lighttpd" Changes: -------- --- /work/SRC/openSUSE:Factory/lighttpd/lighttpd.changes 2017-01-16 11:15:47.637447693 +0100 +++ /work/SRC/openSUSE:Factory/.lighttpd.new/lighttpd.changes 2017-01-25 23:26:26.430687117 +0100 @@ -1,0 +2,34 @@ +Mon Jan 16 14:34:52 UTC 2017 - bwiedemann@suse.com + +- make lighttpd user own /var/log/lighttpd/ + to be able to write logs there + +------------------------------------------------------------------- +Sat Jan 14 12:25:58 UTC 2017 - stbuehler@web.de + +- fix some rpmlint messages + + update FSF address for lighttpd.init + + install example scripts without +x to avoid pulling shell + dependencies + + W:file-contains-current-date /usr/sbin/lighttpd is a false positive; + it only happens when the last-source-modified date is the same as + the build date + + I: binary-or-shlib-calls-gethostbyname has been forwarded upstream + +------------------------------------------------------------------- +Sat Jan 14 11:35:00 UTC 2017 - jenkins@lighttpd.net + +- update to 1.4.45 + + - next is 1.4.45 + + [mod_cgi] skip local-redir handling if to self (fixes #2779, #2108) + + [mod_webdav] fix crash when plugin_ctx cleaned up (fixes #2780) + + [mod_fastcgi] detect child exit, restart proactively + + [mod_scgi] detect child exit, restart proactively + + [TLS] ssl.read-ahead = "disable" for low mem (fixes #2778) + + [doc] NEWS + + [tests] update test skip count for !fcgi-responder + + [tests] FCGI_Finish() final request before exit + + [tests] give time for periodic jobs to detect exit + + [mod_cgi] check cgi fd for num bytes ready to read + +------------------------------------------------------------------- Old: ---- lighttpd_1.4.44-0.1.debian.tar.xz lighttpd_1.4.44-0.1.dsc lighttpd_1.4.44.orig.tar.xz New: ---- lighttpd_1.4.45-0.1.debian.tar.xz lighttpd_1.4.45-0.1.dsc lighttpd_1.4.45.orig.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ lighttpd.spec ++++++ --- /var/tmp/diff_new_pack.f2kb2S/_old 2017-01-25 23:26:27.266561101 +0100 +++ /var/tmp/diff_new_pack.f2kb2S/_new 2017-01-25 23:26:27.274559895 +0100 @@ -18,7 +18,7 @@ %define pkg_home %{_localstatedir}/lib/%{name} Name: lighttpd -Version: 1.4.44 +Version: 1.4.45 Release: 0 # %define pkg_name %{name} @@ -191,7 +191,7 @@ litmus tests are passed. %package mod_authn_gssapi -Summary: A module to provide GSSAPI authentication in lighttpd +Summary: GSSAPI authentication in lighttpd Group: Productivity/Networking/Web/Servers Requires: %{name} = %{version} @@ -199,7 +199,7 @@ A module to provide GSSAPI authentication in lighttpd. %package mod_authn_ldap -Summary: A module to provide LDAP authentication in lighttpd +Summary: LDAP authentication in lighttpd Group: Productivity/Networking/Web/Servers Requires: %{name} = %{version} @@ -207,7 +207,7 @@ A module to provide LDAP authentication in lighttpd. %package mod_authn_mysql -Summary: A module to provide MySQL authentication in lighttpd +Summary: MySQL authentication in lighttpd Group: Productivity/Networking/Web/Servers Requires: %{name} = %{version} @@ -299,6 +299,8 @@ # remove the .la files. we dont need them. # find %{buildroot} -type f -name "*.la" -delete -print +# remove executable bit from doc scripts to avoid pulling dependencies +chmod -x doc/scripts/spawn-php.sh doc/scripts/rrdtool-graph.sh %pre %{_sbindir}/groupadd -r %{name} >/dev/null 2>&1 ||: @@ -412,14 +414,14 @@ %dir %attr(751,%{name},%{name}) %{pkg_home}/ %dir %attr(751,%{name},%{name}) %{pkg_home}/sockets/ %attr(751,%{name},%{name}) %{_var}/cache/%{name}/ -%dir %{_var}/log/%{name}/ +%dir %attr(750,%{name},%{name}) %{_var}/log/%{name}/ %files mod_rrdtool %defattr(-,root,root,-) %config(noreplace) %attr(640,root,%{name}) %{_sysconfdir}/%{name}/conf.d/rrdtool.conf +%{_libdir}/%{name}/mod_rrdtool.so %doc doc/outdated/rrdtool.txt %doc doc/scripts/rrdtool-graph.sh -%{_libdir}/%{name}/mod_rrdtool.so %files mod_cml %defattr(-,root,root,-) ++++++ lighttpd.init ++++++ --- /var/tmp/diff_new_pack.f2kb2S/_old 2017-01-25 23:26:27.390542411 +0100 +++ /var/tmp/diff_new_pack.f2kb2S/_new 2017-01-25 23:26:27.390542411 +0100 @@ -9,19 +9,19 @@ # and its symbolic link # /(usr/)sbin/rclighttpd # -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # Template system startup script for some example service/daemon lighttpd # ++++++ lighttpd_1.4.44-0.1.debian.tar.xz -> lighttpd_1.4.45-0.1.debian.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/debian/changelog new/debian/changelog --- old/debian/changelog 2016-12-24 10:04:42.000000000 +0100 +++ new/debian/changelog 2017-01-14 12:34:51.000000000 +0100 @@ -1,3 +1,21 @@ +lighttpd (1.4.45-0.1) unstable; urgency=low + + * Non-maintainer upload. + * new snapshot 1.4.45 + + - next is 1.4.45 + + [mod_cgi] skip local-redir handling if to self (fixes #2779, #2108) + + [mod_webdav] fix crash when plugin_ctx cleaned up (fixes #2780) + + [mod_fastcgi] detect child exit, restart proactively + + [mod_scgi] detect child exit, restart proactively + + [TLS] ssl.read-ahead = "disable" for low mem (fixes #2778) + + [doc] NEWS + + [tests] update test skip count for !fcgi-responder + + [tests] FCGI_Finish() final request before exit + + [tests] give time for periodic jobs to detect exit + + [mod_cgi] check cgi fd for num bytes ready to read + + -- Jenkins (autobuilder) <jenkins@lighttpd.net> Sat, 14 Jan 2017 11:34:51 +0000 + lighttpd (1.4.44-0.1) unstable; urgency=low * Non-maintainer upload. ++++++ lighttpd_1.4.44-0.1.dsc -> lighttpd_1.4.45-0.1.dsc ++++++ --- /work/SRC/openSUSE:Factory/lighttpd/lighttpd_1.4.44-0.1.dsc 2017-01-16 11:15:47.721435785 +0100 +++ /work/SRC/openSUSE:Factory/.lighttpd.new/lighttpd_1.4.45-0.1.dsc 2017-01-25 23:26:26.506675661 +0100 @@ -5,7 +5,7 @@ Source: lighttpd Binary: lighttpd, lighttpd-doc, lighttpd-mod-mysql-vhost, lighttpd-mod-trigger-b4-dl, lighttpd-mod-cml, lighttpd-mod-magnet, lighttpd-mod-webdav, lighttpd-mod-authn-gssapi, lighttpd-mod-authn-ldap, lighttpd-mod-authn-mysql, lighttpd-mod-geoip Architecture: any all -Version: 1.4.44-0.1 +Version: 1.4.45-0.1 Maintainer: Debian lighttpd maintainers <pkg-lighttpd-maintainers@lists.alioth.debian.org> Uploaders: Krzysztof Krzyżaniak (eloy) <eloy@debian.org>, Olaf van der Spek <olafvdspek@gmail.com>, Arno Töll <arno@debian.org>, Michael Gilbert <mgilbert@debian.org> Homepage: http://lighttpd.net/ @@ -26,23 +26,23 @@ lighttpd-mod-trigger-b4-dl deb httpd optional arch=any lighttpd-mod-webdav deb httpd optional arch=any Checksums-Sha1: - 3597b9c71aabada26129e3ebc0838cb10317d72c 660304 lighttpd_1.4.44.orig.tar.xz - 2cf54510a2ccdef90a90cf86d4f02f4a0f2b60fa 56364 lighttpd_1.4.44-0.1.debian.tar.xz + 03e516f8be59396bc148218fe7b993219dacaf5d 660432 lighttpd_1.4.45.orig.tar.xz + f9f181fa784b49c18f30ce3ab4a9514a9bccbeb2 56560 lighttpd_1.4.45-0.1.debian.tar.xz Checksums-Sha256: - adb66ca985651957feb209c91c55ebbf917d23630bfc3a216a2f70043c7b5422 660304 lighttpd_1.4.44.orig.tar.xz - d359ec0efcb7666aa58ee9087153a0150f4d4bf43389245b998b32288252fdfb 56364 lighttpd_1.4.44-0.1.debian.tar.xz + 1c97225deea33eefba6d4158c2cef27913d47553263516bbe9d2e2760fc43a3f 660432 lighttpd_1.4.45.orig.tar.xz + 211ae709717e610caa7876bb5f46bd5e6f51203baa9c6461dbc5ab60d6a4686d 56560 lighttpd_1.4.45-0.1.debian.tar.xz Files: - eb9355543ce0248397acc3245005b110 660304 lighttpd_1.4.44.orig.tar.xz - aa814c84306516c352db05e639a5a1e6 56364 lighttpd_1.4.44-0.1.debian.tar.xz + a128e1eda76899ce3fd115efae5fe631 660432 lighttpd_1.4.45.orig.tar.xz + 3cd4f8a75e2646bfcc17d72270ebccb5 56560 lighttpd_1.4.45-0.1.debian.tar.xz -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 -iQEcBAEBCAAGBQJYXjotAAoJEE3M2orHRjXrJSIIAKx2ZO6s+b58cD5jvcz+0pH7 -D/9sm5c2TeMlooSrqY6gQEYkjoKDOOL33Ke7iCX/GRs6THUTPYZoSEjZMNZfJ/CT -oK6XAWvYqeUEWkvnVLktFGc5POIxzlvg6xvTs15dhO4gsLttDOlneuzVJH4ooKVz -n4+A+U2v13dsZGDcr2UfZSRTD2oTVWrsyiI4Smu5kbXeO+WbnT5u+iyAdHt9bb7U -+wA2aNUfcTmyfyV9p1XSNWAfGCN0Hh2t+eI3idhlPXaD+plhEChRzt4UVqDCClP6 -t5ahicohtJUTB3Cou6uMzzLKk1zEaj4WbvOBJZVGeZ434FpWtIFNAC+SDKmDa2I= -=oRnr +iQEcBAEBCAAGBQJYegzeAAoJEE3M2orHRjXriBEH/1NkSh1rQhWFqYFRNLv2M60G +l4vhyfeUs+GCmCyI/XatTBEEYm2PvzeTAumd7bByTu3MK6+uZiODrOkKCFdai/j0 +lfo83nzLR1lkQxLdZ1Eq7YdcpmmhxIFoUSJjNrDA3ksoF2U/rafCo6P3LXWTHBV4 +sGlIy04VcfTTNmXH04lENparRCjiNHrmKqVQTFJZyK00EmN8bUJ1GWvpUogi2Kwg +PL6E8owlhE8K4MBorATlwpE6raVTUWQGfUkF04+7VKC/YmYlTeAlb4XIdn52VGru +4VO2SBCzDdMsa54e/V7hklFRYzUIPiPcIOctjI1Acj9yiAXkafdB8IWhYoVKUq8= +=S/HP -----END PGP SIGNATURE----- ++++++ lighttpd_1.4.44.orig.tar.xz -> lighttpd_1.4.45.orig.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/CMakeLists.txt new/lighttpd-1.4.45/CMakeLists.txt --- old/lighttpd-1.4.44/CMakeLists.txt 2016-12-24 06:26:55.000000000 +0100 +++ new/lighttpd-1.4.45/CMakeLists.txt 2017-01-14 06:05:16.000000000 +0100 @@ -10,7 +10,7 @@ set(CPACK_PACKAGE_VERSION_MAJOR 1) set(CPACK_PACKAGE_VERSION_MINOR 4) -set(CPACK_PACKAGE_VERSION_PATCH 44) +set(CPACK_PACKAGE_VERSION_PATCH 45) set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/NEWS new/lighttpd-1.4.45/NEWS --- old/lighttpd-1.4.44/NEWS 2016-12-24 06:26:55.000000000 +0100 +++ new/lighttpd-1.4.45/NEWS 2017-01-14 06:05:16.000000000 +0100 @@ -3,7 +3,14 @@ NEWS ==== -- 1.4.44 +- 1.4.45 + * [mod_cgi] skip local-redir handling if to self (fixes #2779, #2108) + * [mod_webdav] fix crash when plugin_ctx cleaned up (fixes #2780) + * [mod_fastcgi] detect child exit, restart proactively + * [mod_scgi] detect child exit, restart proactively + * [TLS] ssl.read-ahead = "disable" for low mem (fixes #2778) + +- 1.4.44 - 2016-12-24 * [mod_scgi] fix segfault (fixes #2762) * [mod_authn_gssapi] fix memory leak * [config] warn if mod_authn_ldap,mysql not listed diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/SConstruct new/lighttpd-1.4.45/SConstruct --- old/lighttpd-1.4.44/SConstruct 2016-12-24 06:26:55.000000000 +0100 +++ new/lighttpd-1.4.45/SConstruct 2017-01-14 06:05:16.000000000 +0100 @@ -5,7 +5,7 @@ from stat import * package = 'lighttpd' -version = '1.4.44' +version = '1.4.45' def checkCHeaders(autoconf, hdrs): p = re.compile('[^A-Z0-9]') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/configure new/lighttpd-1.4.45/configure --- old/lighttpd-1.4.44/configure 2016-12-24 06:27:06.000000000 +0100 +++ new/lighttpd-1.4.45/configure 2017-01-14 06:05:57.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for lighttpd 1.4.44. +# Generated by GNU Autoconf 2.69 for lighttpd 1.4.45. # # Report bugs to <contact@lighttpd.net>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='lighttpd' PACKAGE_TARNAME='lighttpd' -PACKAGE_VERSION='1.4.44' -PACKAGE_STRING='lighttpd 1.4.44' +PACKAGE_VERSION='1.4.45' +PACKAGE_STRING='lighttpd 1.4.45' PACKAGE_BUGREPORT='contact@lighttpd.net' PACKAGE_URL='' @@ -1421,7 +1421,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures lighttpd 1.4.44 to adapt to many kinds of systems. +\`configure' configures lighttpd 1.4.45 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1491,7 +1491,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of lighttpd 1.4.44:";; + short | recursive ) echo "Configuration of lighttpd 1.4.45:";; esac cat <<\_ACEOF @@ -1657,7 +1657,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -lighttpd configure 1.4.44 +lighttpd configure 1.4.45 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2320,7 +2320,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by lighttpd $as_me 1.4.44, which was +It was created by lighttpd $as_me 1.4.45, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3262,7 +3262,7 @@ # Define the identity of the package. PACKAGE='lighttpd' - VERSION='1.4.44' + VERSION='1.4.45' cat >>confdefs.h <<_ACEOF @@ -18908,7 +18908,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by lighttpd $as_me 1.4.44, which was +This file was extended by lighttpd $as_me 1.4.45, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -18974,7 +18974,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -lighttpd config.status 1.4.44 +lighttpd config.status 1.4.45 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/configure.ac new/lighttpd-1.4.45/configure.ac --- old/lighttpd-1.4.44/configure.ac 2016-12-24 06:26:55.000000000 +0100 +++ new/lighttpd-1.4.45/configure.ac 2017-01-14 06:05:16.000000000 +0100 @@ -1,7 +1,7 @@ dnl -*- Autoconf -*- dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.57) -AC_INIT([lighttpd], [1.4.44], [contact@lighttpd.net]) +AC_INIT([lighttpd], [1.4.45], [contact@lighttpd.net]) AC_CONFIG_SRCDIR([src/server.c]) AC_CONFIG_HEADER([config.h]) AC_CONFIG_MACRO_DIR([m4]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/src/base.h new/lighttpd-1.4.45/src/base.h --- old/lighttpd-1.4.44/src/base.h 2016-12-24 06:26:55.000000000 +0100 +++ new/lighttpd-1.4.45/src/base.h 2017-01-14 06:05:17.000000000 +0100 @@ -295,6 +295,7 @@ buffer *ssl_verifyclient_username; unsigned short ssl_verifyclient_export_cert; unsigned short ssl_disable_client_renegotiation; + unsigned short ssl_read_ahead; unsigned short use_ipv6, set_v6only; /* set_v6only is only a temporary option */ unsigned short defer_accept; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/src/configfile.c new/lighttpd-1.4.45/src/configfile.c --- old/lighttpd-1.4.44/src/configfile.c 2016-12-24 06:26:55.000000000 +0100 +++ new/lighttpd-1.4.45/src/configfile.c 2017-01-14 06:05:17.000000000 +0100 @@ -144,6 +144,7 @@ { "server.stream-request-body", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 76 */ { "server.stream-response-body", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 77 */ { "server.max-request-field-size", NULL, T_CONFIG_INT, T_CONFIG_SCOPE_SERVER }, /* 78 */ + { "ssl.read-ahead", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 79 */ { NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET } }; @@ -247,6 +248,7 @@ s->ssl_verifyclient_depth = 9; s->ssl_verifyclient_export_cert = 0; s->ssl_disable_client_renegotiation = 1; + s->ssl_read_ahead = (0 == i ? 1 : srv->config_storage[0]->ssl_read_ahead); s->listen_backlog = (0 == i ? 1024 : srv->config_storage[0]->listen_backlog); s->stream_request_body = 0; s->stream_response_body = 0; @@ -315,6 +317,7 @@ #endif cv[76].destination = &(s->stream_request_body); cv[77].destination = &(s->stream_response_body); + cv[79].destination = &(s->ssl_read_ahead); srv->config_storage[i] = s; @@ -543,6 +546,7 @@ PATCH(ssl_verifyclient_username); PATCH(ssl_verifyclient_export_cert); PATCH(ssl_disable_client_renegotiation); + PATCH(ssl_read_ahead); return 0; } @@ -671,6 +675,8 @@ PATCH(ssl_verifyclient_export_cert); } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.disable-client-renegotiation"))) { PATCH(ssl_disable_client_renegotiation); + } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("ssl.read-ahead"))) { + PATCH(ssl_read_ahead); } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/src/connections-glue.c new/lighttpd-1.4.45/src/connections-glue.c --- old/lighttpd-1.4.44/src/connections-glue.c 2016-12-24 06:26:55.000000000 +0100 +++ new/lighttpd-1.4.45/src/connections-glue.c 2017-01-14 06:05:17.000000000 +0100 @@ -127,7 +127,7 @@ connection_set_state(srv, con, CON_STATE_ERROR); return -1; } - } while (len > 0); + } while (len > 0 && (con->conf.ssl_read_ahead || SSL_pending(con->ssl) > 0)); if (len < 0) { int oerrno = errno; @@ -206,11 +206,13 @@ connection_set_state(srv, con, CON_STATE_ERROR); return -1; - } else { /*(len == 0)*/ + } else if (len == 0) { con->is_readable = 0; /* the other end close the connection -> KEEP-ALIVE */ return -2; + } else { + return 0; } #else UNUSED(srv); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/src/mod_cgi.c new/lighttpd-1.4.45/src/mod_cgi.c --- old/lighttpd-1.4.44/src/mod_cgi.c 2016-12-24 06:26:55.000000000 +0100 +++ new/lighttpd-1.4.45/src/mod_cgi.c 2017-01-14 06:05:17.000000000 +0100 @@ -398,7 +398,7 @@ #if defined(__WIN32) buffer_string_prepare_copy(hctx->response, 4 * 1024); #else - if (ioctl(con->fd, FIONREAD, &toread) || toread <= 4*1024) { + if (ioctl(hctx->fd, FIONREAD, &toread) || toread <= 4*1024) { buffer_string_prepare_copy(hctx->response, 4 * 1024); } else { if (toread > MAX_READ_LIMIT) toread = MAX_READ_LIMIT; @@ -529,9 +529,13 @@ if (con->http_status >= 300 && con->http_status < 400) { /*(con->parsed_response & HTTP_LOCATION)*/ + size_t ulen = buffer_string_length(con->uri.path); data_string *ds; if (NULL != (ds = (data_string *) array_get_element(con->response.headers, "Location")) - && ds->value->ptr[0] == '/') { + && ds->value->ptr[0] == '/' + && (0 != strncmp(ds->value->ptr, con->uri.path->ptr, ulen) + || (ds->value->ptr[ulen] != '\0' && ds->value->ptr[ulen] != '/' && ds->value->ptr[ulen] != '?')) + && NULL == array_get_element(con->response.headers, "Set-Cookie")) { if (++con->loops_per_request > 5) { log_error_write(srv, __FILE__, __LINE__, "sb", "too many internal loops while processing request:", con->request.orig_uri); con->http_status = 500; /* Internal Server Error */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/src/mod_fastcgi.c new/lighttpd-1.4.45/src/mod_fastcgi.c --- old/lighttpd-1.4.44/src/mod_fastcgi.c 2016-12-24 06:26:55.000000000 +0100 +++ new/lighttpd-1.4.45/src/mod_fastcgi.c 2017-01-14 06:05:17.000000000 +0100 @@ -3550,6 +3550,49 @@ host = ex->hosts[n]; + for (proc = host->first; proc; proc = proc->next) { + int status; + + if (proc->pid == 0) continue; + + switch (waitpid(proc->pid, &status, WNOHANG)) { + case 0: + /* child still running after timeout, good */ + break; + case -1: + if (errno != EINTR) { + /* no PID found ? should never happen */ + log_error_write(srv, __FILE__, __LINE__, "sddss", + "pid ", proc->pid, proc->state, + "not found:", strerror(errno)); + } + break; + default: + /* the child should not terminate at all */ + if (WIFEXITED(status)) { + if (proc->state != PROC_STATE_KILLED) { + log_error_write(srv, __FILE__, __LINE__, "sdb", + "child exited:", + WEXITSTATUS(status), proc->connection_name); + } + } else if (WIFSIGNALED(status)) { + if (WTERMSIG(status) != SIGTERM) { + log_error_write(srv, __FILE__, __LINE__, "sd", + "child signaled:", + WTERMSIG(status)); + } + } else { + log_error_write(srv, __FILE__, __LINE__, "sd", + "child died somehow:", + status); + } + proc->pid = 0; + if (proc->state == PROC_STATE_RUNNING) host->active_procs--; + proc->state = PROC_STATE_DIED; + host->max_id--; + } + } + fcgi_restart_dead_procs(srv, p, host); for (proc = host->unused_procs; proc; proc = proc->next) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/src/mod_scgi.c new/lighttpd-1.4.45/src/mod_scgi.c --- old/lighttpd-1.4.44/src/mod_scgi.c 2016-12-24 06:26:55.000000000 +0100 +++ new/lighttpd-1.4.45/src/mod_scgi.c 2017-01-14 06:05:17.000000000 +0100 @@ -2886,6 +2886,49 @@ host = ex->hosts[n]; + for (proc = host->first; proc; proc = proc->next) { + int status; + + if (proc->pid == 0) continue; + + switch (waitpid(proc->pid, &status, WNOHANG)) { + case 0: + /* child still running after timeout, good */ + break; + case -1: + if (errno != EINTR) { + /* no PID found ? should never happen */ + log_error_write(srv, __FILE__, __LINE__, "sddss", + "pid ", proc->pid, proc->state, + "not found:", strerror(errno)); + } + break; + default: + /* the child should not terminate at all */ + if (WIFEXITED(status)) { + if (proc->state != PROC_STATE_KILLED) { + log_error_write(srv, __FILE__, __LINE__, "sdb", + "child exited:", + WEXITSTATUS(status), proc->socket); + } + } else if (WIFSIGNALED(status)) { + if (WTERMSIG(status) != SIGTERM) { + log_error_write(srv, __FILE__, __LINE__, "sd", + "child signaled:", + WTERMSIG(status)); + } + } else { + log_error_write(srv, __FILE__, __LINE__, "sd", + "child died somehow:", + status); + } + proc->pid = 0; + if (proc->state == PROC_STATE_RUNNING) host->active_procs--; + proc->state = PROC_STATE_DIED; + host->max_id--; + } + } + scgi_restart_dead_procs(srv, p, host); for (proc = host->first; proc; proc = proc->next) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/src/mod_webdav.c new/lighttpd-1.4.45/src/mod_webdav.c --- old/lighttpd-1.4.44/src/mod_webdav.c 2016-12-24 06:26:55.000000000 +0100 +++ new/lighttpd-1.4.45/src/mod_webdav.c 2017-01-14 06:05:17.000000000 +0100 @@ -2758,7 +2758,10 @@ static handler_t mod_webdav_connection_reset(server *srv, connection *con, void *p_d) { plugin_data *p = p_d; handler_ctx *hctx = con->plugin_ctx[p->id]; - if (hctx) free(hctx); + if (hctx) { + free(hctx); + con->plugin_ctx[p->id] = NULL; + } UNUSED(srv); return HANDLER_GO_ON; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/src/network.c new/lighttpd-1.4.45/src/network.c --- old/lighttpd-1.4.44/src/network.c 2016-12-24 06:26:55.000000000 +0100 +++ new/lighttpd-1.4.45/src/network.c 2017-01-14 06:05:17.000000000 +0100 @@ -994,7 +994,7 @@ s->ssl_pemfile); return -1; } - SSL_CTX_set_default_read_ahead(s->ssl_ctx, 1); + SSL_CTX_set_default_read_ahead(s->ssl_ctx, s->ssl_read_ahead); SSL_CTX_set_mode(s->ssl_ctx, SSL_CTX_get_mode(s->ssl_ctx) | SSL_MODE_ENABLE_PARTIAL_WRITE | SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/tests/docroot/www/cgi.pl new/lighttpd-1.4.45/tests/docroot/www/cgi.pl --- old/lighttpd-1.4.44/tests/docroot/www/cgi.pl 2016-12-24 06:26:55.000000000 +0100 +++ new/lighttpd-1.4.45/tests/docroot/www/cgi.pl 2017-01-14 06:05:17.000000000 +0100 @@ -1,7 +1,7 @@ #!/usr/bin/env perl if ($ENV{"QUERY_STRING"} eq "internal-redir") { - print "Location: /cgi.pl\r\n\r\n"; + print "Location: /cgi-pathinfo.pl/foo\r\n\r\n"; exit 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/tests/fcgi-responder.c new/lighttpd-1.4.45/tests/fcgi-responder.c --- old/lighttpd-1.4.44/tests/fcgi-responder.c 2016-12-24 06:26:55.000000000 +0100 +++ new/lighttpd-1.4.45/tests/fcgi-responder.c 2017-01-14 06:05:17.000000000 +0100 @@ -11,7 +11,7 @@ #include <string.h> int main (void) { - int num_requests = 2; + int num_requests = 1; while (num_requests > 0 && FCGI_Accept() >= 0) { @@ -50,6 +50,8 @@ } else { printf("test123"); } + + if (0 == num_requests) FCGI_Finish(); } return 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lighttpd-1.4.44/tests/mod-fastcgi.t new/lighttpd-1.4.45/tests/mod-fastcgi.t --- old/lighttpd-1.4.44/tests/mod-fastcgi.t 2016-12-24 06:26:55.000000000 +0100 +++ new/lighttpd-1.4.45/tests/mod-fastcgi.t 2017-01-14 06:05:17.000000000 +0100 @@ -7,7 +7,7 @@ } use strict; -use Test::More tests => 60; +use Test::More tests => 59; use LightyTest; my $tf = LightyTest->new(); @@ -348,7 +348,7 @@ SKIP: { - skip "no fcgi-responder found", 11 unless -x $tf->{BASEDIR}."/tests/fcgi-responder" || -x $tf->{BASEDIR}."/tests/fcgi-responder.exe"; + skip "no fcgi-responder found", 10 unless -x $tf->{BASEDIR}."/tests/fcgi-responder" || -x $tf->{BASEDIR}."/tests/fcgi-responder.exe"; $tf->{CONFIGFILE} = 'fastcgi-responder.conf'; ok($tf->start_proc == 0, "Starting lighttpd with $tf->{CONFIGFILE}") or die(); @@ -409,17 +409,9 @@ $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => 'test123' } ]; ok($tf->handle_http($t) == 0, 'killing fastcgi and wait for restart'); - select(undef, undef, undef, .2); - $t->{REQUEST} = ( <<EOF -GET /index.fcgi?die-at-end HTTP/1.0 -Host: www.example.org -EOF - ); - $t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => 'test123' } ]; - ok($tf->handle_http($t) == 0, 'killing fastcgi and wait for restart'); - - - select(undef, undef, undef, .2); + # (might take lighttpd 1 sec to detect backend exit) + select(undef, undef, undef, .9); + select(undef, undef, undef, .1) while (!$tf->listening_on(10000)); $t->{REQUEST} = ( <<EOF GET /index.fcgi?crlf HTTP/1.0 Host: www.example.org
participants (1)
-
root@hilbertn.suse.de