SOURCES: lighttpd-branch.diff - update to 2371: - Fix fastcgi-authorizer ...

glen glen at pld-linux.org
Mon Jan 19 11:06:20 CET 2009


Author: glen                         Date: Mon Jan 19 10:06:20 2009 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- update to 2371:
  - Fix fastcgi-authorizer handling; Status: 200 is now accepted as the doc requests
  - Compare address family in inet_ntop_cache
  - Revert CVE-2008-4359 (#1720) fix "encoding+simplifying urls for rewrite/redirect": too many regressions.
  - Use FD_CLOEXEC if possible (fixes #1821)
  - Optimized buffer usage in mod_proxy (fixes #1850)
  - Fix uninitialized value in time struct after strptime

---- Files affected:
SOURCES:
   lighttpd-branch.diff (1.42 -> 1.43) 

---- Diffs:

================================================================
Index: SOURCES/lighttpd-branch.diff
diff -u SOURCES/lighttpd-branch.diff:1.42 SOURCES/lighttpd-branch.diff:1.43
--- SOURCES/lighttpd-branch.diff:1.42	Tue Oct  7 18:16:14 2008
+++ SOURCES/lighttpd-branch.diff	Mon Jan 19 11:06:14 2009
@@ -1,9 +1,57 @@
+Index: cmake/LighttpdMacros.cmake
+===================================================================
+--- cmake/LighttpdMacros.cmake	(.../tags/lighttpd-1.4.20)	(revision 0)
++++ cmake/LighttpdMacros.cmake	(.../branches/lighttpd-1.4.x)	(revision 2371)
+@@ -0,0 +1,43 @@
++## our modules are without the "lib" prefix
++
++MACRO(ADD_AND_INSTALL_LIBRARY LIBNAME SRCFILES)
++  IF(BUILD_STATIC)
++    ADD_LIBRARY(${LIBNAME} STATIC ${SRCFILES})
++    TARGET_LINK_LIBRARIES(lighttpd ${LIBNAME})
++  ELSE(BUILD_STATIC)
++    ADD_LIBRARY(${LIBNAME} SHARED ${SRCFILES})
++    SET(L_INSTALL_TARGETS ${L_INSTALL_TARGETS} ${LIBNAME})
++    ## Windows likes to link it this way back to app!
++    IF(WIN32)
++        SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES LINK_FLAGS lighttpd.lib)
++    ENDIF(WIN32)
++
++    IF(APPLE)
++        SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress")
++    ENDIF(APPLE)
++  ENDIF(BUILD_STATIC)
++ENDMACRO(ADD_AND_INSTALL_LIBRARY)
++
++MACRO(LEMON_PARSER SRCFILE)
++  GET_FILENAME_COMPONENT(SRCBASE ${SRCFILE} NAME_WE)
++  ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${SRCBASE}.c ${CMAKE_CURRENT_BINARY_DIR}/${SRCBASE}.h
++  COMMAND ${CMAKE_BINARY_DIR}/build/lemon
++  ARGS -q ${CMAKE_CURRENT_SOURCE_DIR}/${SRCFILE} ${CMAKE_SOURCE_DIR}/src/lempar.c
++    DEPENDS ${CMAKE_BINARY_DIR}/build/lemon ${CMAKE_CURRENT_SOURCE_DIR}/${SRCFILE} ${CMAKE_SOURCE_DIR}/src/lempar.c
++  COMMENT "Generating ${SRCBASE}.c from ${SRCFILE}"
++)
++ENDMACRO(LEMON_PARSER)
++
++MACRO(ADD_TARGET_PROPERTIES _target _name)
++  SET(_properties)
++  FOREACH(_prop ${ARGN})
++    SET(_properties "${_properties} ${_prop}")
++  ENDFOREACH(_prop)
++  GET_TARGET_PROPERTY(_old_properties ${_target} ${_name})
++  MESSAGE("adding property to ${_target} ${_name}:" ${_properties})
++  IF(NOT _old_properties)
++    # in case it's NOTFOUND
++    SET(_old_properties)
++  ENDIF(NOT _old_properties)
++  SET_TARGET_PROPERTIES(${_target} PROPERTIES ${_name} "${_old_properties} ${_properties}")
++ENDMACRO(ADD_TARGET_PROPERTIES)
 Index: configure.in
 ===================================================================
 Index: src/configfile-glue.c
 ===================================================================
---- src/configfile-glue.c	(.../tags/lighttpd-1.4.20)	(revision 2336)
-+++ src/configfile-glue.c	(.../branches/lighttpd-1.4.x)	(revision 2336)
+--- src/configfile-glue.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/configfile-glue.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
 @@ -1,4 +1,5 @@
  #include <string.h>
 +#include <stdlib.h>
@@ -35,8 +83,8 @@
  				return -1;
 Index: src/mod_cgi.c
 ===================================================================
---- src/mod_cgi.c	(.../tags/lighttpd-1.4.20)	(revision 2336)
-+++ src/mod_cgi.c	(.../branches/lighttpd-1.4.x)	(revision 2336)
+--- src/mod_cgi.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/mod_cgi.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
 @@ -822,15 +822,27 @@
  			);
  		cgi_env_add(&env, CONST_STR_LEN("SERVER_PORT"), buf, strlen(buf));
@@ -105,10 +153,27 @@
  		cgi_env_add(&env, CONST_STR_LEN("REMOTE_ADDR"), s, strlen(s));
  
  		LI_ltostr(buf,
+Index: src/mod_rewrite.c
+===================================================================
+--- src/mod_rewrite.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/mod_rewrite.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
+@@ -350,11 +350,7 @@
+ 
+ 	if (!p->conf.rewrite) return HANDLER_GO_ON;
+ 
+-	buffer_copy_string_buffer(p->match_buf, con->uri.path);
+-	if (con->uri.query->used > 0) {
+-		buffer_append_string_len(p->match_buf, CONST_STR_LEN("?"));
+-		buffer_append_string_buffer(p->match_buf, con->uri.query);
+-	}
++	buffer_copy_string_buffer(p->match_buf, con->request.uri);
+ 
+ 	for (i = 0; i < p->conf.rewrite->used; i++) {
+ 		pcre *match;
 Index: src/connections.c
 ===================================================================
---- src/connections.c	(.../tags/lighttpd-1.4.20)	(revision 2336)
-+++ src/connections.c	(.../branches/lighttpd-1.4.x)	(revision 2336)
+--- src/connections.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/connections.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
 @@ -330,15 +330,13 @@
  	buffer_prepare_copy(b, 4 * 1024);
  	len = recv(con->fd, b->ptr, b->size - 1, 0);
@@ -131,10 +196,36 @@
  	len = read(con->fd, b->ptr, b->size - 1);
  #endif
  
+@@ -1066,6 +1064,9 @@
+ 						if (dst_c->file.fd == -1) {
+ 							/* this should not happen as we cache the fd, but you never know */
+ 							dst_c->file.fd = open(dst_c->file.name->ptr, O_WRONLY | O_APPEND);
++#ifdef FD_CLOEXEC
++							fcntl(dst_c->file.fd, F_SETFD, FD_CLOEXEC);
++#endif
+ 						}
+ 					} else {
+ 						/* the chunk is too large now, close it */
+Index: src/mod_alias.c
+===================================================================
+--- src/mod_alias.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/mod_alias.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
+@@ -103,9 +103,8 @@
+ 					}
+ 					/* ok, they have same prefix. check position */
+ 					if (a->sorted[j] < a->sorted[k]) {
+-						fprintf(stderr, "url.alias: `%s' will never match as `%s' matched first\n",
+-								key->ptr,
+-								prefix->ptr);
++						log_error_write(srv, __FILE__, __LINE__, "SBSBS",
++							"url.alias: `", key, "' will never match as `", prefix, "' matched first");
+ 						return HANDLER_ERROR;
+ 					}
+ 				}
 Index: src/configfile.c
 ===================================================================
---- src/configfile.c	(.../tags/lighttpd-1.4.20)	(revision 2336)
-+++ src/configfile.c	(.../branches/lighttpd-1.4.x)	(revision 2336)
+--- src/configfile.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/configfile.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
 @@ -940,7 +940,6 @@
  }
  
@@ -152,10 +243,105 @@
  		log_error_write(srv, __FILE__, __LINE__, "sbss",
  				"opening", source, "failed:", strerror(errno));
  		ret = -1;
+Index: src/mod_trigger_b4_dl.c
+===================================================================
+--- src/mod_trigger_b4_dl.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/mod_trigger_b4_dl.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
+@@ -1,5 +1,6 @@
+ #include <ctype.h>
+ #include <stdlib.h>
++#include <fcntl.h>
+ #include <string.h>
+ 
+ #include "base.h"
+@@ -180,6 +181,9 @@
+ 						"gdbm-open failed");
+ 				return HANDLER_ERROR;
+ 			}
++#ifdef FD_CLOEXEC
++			fcntl(gdbm_fdesc(s->db), F_SETFD, FD_CLOEXEC);
++#endif
+ 		}
+ #endif
+ #if defined(HAVE_PCRE_H)
+Index: src/mod_mysql_vhost.c
+===================================================================
+--- src/mod_mysql_vhost.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/mod_mysql_vhost.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
+@@ -245,7 +245,6 @@
+ 		if (!(buffer_is_empty(s->myuser) ||
+ 		      buffer_is_empty(s->mydb))) {
+ 			my_bool reconnect = 1;
+-			int fd;
+ 
+ 			if (NULL == (s->mysql = mysql_init(NULL))) {
+ 				log_error_write(srv, __FILE__, __LINE__, "s", "mysql_init() failed, exiting...");
+@@ -267,19 +266,27 @@
+ 				return HANDLER_ERROR;
+ 			}
+ #undef FOO
++
++#if 0
+ 			/* set close_on_exec for mysql the hard way */
+ 			/* Note: this only works as it is done during startup, */
+ 			/* otherwise we cannot be sure that mysql is fd i-1 */
+-			if (-1 == (fd = open("/dev/null", 0))) {
++			{ int fd;
++			if (-1 != (fd = open("/dev/null", 0))) {
+ 				close(fd);
++#ifdef FD_CLOEXEC
+ 				fcntl(fd-1, F_SETFD, FD_CLOEXEC);
+-			}
++#endif
++			} }
++#else
++#ifdef FD_CLOEXEC
++			fcntl(s->mysql->net.fd, F_SETFD, FD_CLOEXEC);
++#endif
++#endif
+ 		}
+ 	}
+ 
+-
+-
+-        return HANDLER_GO_ON;
++	return HANDLER_GO_ON;
+ }
+ 
+ #define PATCH(x) \
+Index: src/inet_ntop_cache.c
+===================================================================
+--- src/inet_ntop_cache.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/inet_ntop_cache.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
+@@ -11,7 +11,7 @@
+ #ifdef HAVE_IPV6
+ 	size_t ndx = 0, i;
+ 	for (i = 0; i < INET_NTOP_CACHE_MAX; i++) {
+-		if (srv->inet_ntop_cache[i].ts != 0) {
++		if (srv->inet_ntop_cache[i].ts != 0 && srv->inet_ntop_cache[i].family == addr->plain.sa_family) {
+ 			if (srv->inet_ntop_cache[i].family == AF_INET6 &&
+ 			    0 == memcmp(srv->inet_ntop_cache[i].addr.ipv6.s6_addr, addr->ipv6.sin6_addr.s6_addr, 16)) {
+ 				/* IPv6 found in cache */
+Index: src/mod_rrdtool.c
+===================================================================
+--- src/mod_rrdtool.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/mod_rrdtool.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
+@@ -179,6 +179,11 @@
+ 		p->read_fd = from_rrdtool_fds[0];
+ 		p->rrdtool_pid = pid;
+ 
++#ifdef FD_CLOEXEC
++		fcntl(p->write_fd, F_SETFD, FD_CLOEXEC);
++		fcntl(p->read_fd, F_SETFD, FD_CLOEXEC);
++#endif
++
+ 		break;
+ 	}
+ 	}
 Index: src/response.c
 ===================================================================
---- src/response.c	(.../tags/lighttpd-1.4.20)	(revision 2336)
-+++ src/response.c	(.../branches/lighttpd-1.4.x)	(revision 2336)
+--- src/response.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/response.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
 @@ -44,16 +44,15 @@
  	buffer_append_string(b, get_http_status_name(con->http_status));
  
@@ -176,10 +362,79 @@
  	}
  
  
+@@ -233,6 +232,27 @@
+ 		}
+ 
+ 
++		/**
++		 *
++		 * call plugins
++		 *
++		 * - based on the raw URL
++		 *
++		 */
++
++		switch(r = plugins_call_handle_uri_raw(srv, con)) {
++		case HANDLER_GO_ON:
++			break;
++		case HANDLER_FINISHED:
++		case HANDLER_COMEBACK:
++		case HANDLER_WAIT_FOR_EVENT:
++		case HANDLER_ERROR:
++			return r;
++		default:
++			log_error_write(srv, __FILE__, __LINE__, "sd", "handle_uri_raw: unknown return value", r);
++			break;
++		}
++
+ 		/* build filename
+ 		 *
+ 		 * - decode url-encodings  (e.g. %20 -> ' ')
+@@ -240,6 +260,7 @@
+ 		 */
+ 
+ 
++
+ 		if (con->request.http_method == HTTP_METHOD_OPTIONS &&
+ 		    con->uri.path_raw->ptr[0] == '*' && con->uri.path_raw->ptr[1] == '\0') {
+ 			/* OPTIONS * ... */
+@@ -255,32 +276,10 @@
+ 			log_error_write(srv, __FILE__, __LINE__,  "sb", "URI-path     : ", con->uri.path);
+ 		}
+ 
+-
+ 		/**
+ 		 *
+ 		 * call plugins
+ 		 *
+-		 * - based on the raw URL
+-		 *
+-		 */
+-
+-		switch(r = plugins_call_handle_uri_raw(srv, con)) {
+-		case HANDLER_GO_ON:
+-			break;
+-		case HANDLER_FINISHED:
+-		case HANDLER_COMEBACK:
+-		case HANDLER_WAIT_FOR_EVENT:
+-		case HANDLER_ERROR:
+-			return r;
+-		default:
+-			log_error_write(srv, __FILE__, __LINE__, "sd", "handle_uri_raw: unknown return value", r);
+-			break;
+-		}
+-
+-		/**
+-		 *
+-		 * call plugins
+-		 *
+ 		 * - based on the clean URL
+ 		 *
+ 		 */
 Index: src/mod_simple_vhost.c
 ===================================================================
---- src/mod_simple_vhost.c	(.../tags/lighttpd-1.4.20)	(revision 2336)
-+++ src/mod_simple_vhost.c	(.../branches/lighttpd-1.4.x)	(revision 2336)
+--- src/mod_simple_vhost.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/mod_simple_vhost.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
 @@ -249,6 +249,8 @@
  				return HANDLER_GO_ON;
  			} else {
@@ -191,8 +446,17 @@
  			buffer_copy_string_buffer(con->server_name, con->uri.authority);
 Index: src/mod_proxy.c
 ===================================================================
---- src/mod_proxy.c	(.../tags/lighttpd-1.4.20)	(revision 2336)
-+++ src/mod_proxy.c	(.../branches/lighttpd-1.4.x)	(revision 2336)
+--- src/mod_proxy.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/mod_proxy.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
+@@ -652,7 +652,7 @@
+ 			buffer_prepare_append(hctx->response, b + 1);
+ 			hctx->response->used = 1;
+ 		} else {
+-			buffer_prepare_append(hctx->response, hctx->response->used + b);
++			buffer_prepare_append(hctx->response, b);
+ 		}
+ 
+ 		if (-1 == (r = read(hctx->fd, hctx->response->ptr + hctx->response->used - 1, b))) {
 @@ -1198,7 +1198,8 @@
  		host = (data_proxy *)extension->value->data[0];
  
@@ -203,10 +467,165 @@
  		if (ndx < 0) ndx = 0;
  
  		/* Search first active host after last_used_ndx */
+Index: src/config.h.cmake
+===================================================================
+--- src/config.h.cmake	(.../tags/lighttpd-1.4.20)	(revision 0)
++++ src/config.h.cmake	(.../branches/lighttpd-1.4.x)	(revision 2371)
+@@ -0,0 +1,150 @@
++/*
++    CMake autogenerated config.h file. Do not edit!
++*/
++
++/* System */
++#cmakedefine  HAVE_SYS_DEVPOLL_H
++#cmakedefine  HAVE_SYS_EPOLL_H
++#cmakedefine  HAVE_SYS_EVENT_H
++#cmakedefine  HAVE_SYS_MMAN_H
++#cmakedefine  HAVE_SYS_POLL_H
++#cmakedefine  HAVE_SYS_PORT_H
++#cmakedefine  HAVE_SYS_PRCTL_H
++#cmakedefine  HAVE_SYS_RESOURCE_H
++#cmakedefine  HAVE_SYS_SENDFILE_H
++#cmakedefine  HAVE_SYS_SELECT_H
++#cmakedefine  HAVE_SYS_SYSLIMITS_H
++#cmakedefine  HAVE_SYS_TYPES_H
++#cmakedefine  HAVE_SYS_UIO_H
++#cmakedefine  HAVE_SYS_UN_H
++#cmakedefine  HAVE_SYS_WAIT_H
++#cmakedefine HAVE_SYS_TIME_H
++#cmakedefine HAVE_UNISTD_H
++#cmakedefine HAVE_PTHREAD_H
++#cmakedefine HAVE_INET_ATON
++#cmakedefine HAVE_IPV6
++
++/* XATTR */
++#cmakedefine HAVE_ATTR_ATTRIBUTES_H
++#cmakedefine HAVE_XATTR
++
++/* mySQL */
++#cmakedefine  HAVE_MYSQL_H
++#cmakedefine  HAVE_MYSQL
++
++/* OpenSSL */
++#cmakedefine  HAVE_OPENSSL_SSL_H
++#cmakedefine  HAVE_LIBCRYPTO
++#cmakedefine  OPENSSL_NO_KRB5
++#cmakedefine  HAVE_LIBSSL
++
++/* BZip */
++#cmakedefine  HAVE_BZLIB_H
++#cmakedefine  HAVE_LIBBZ2
++
++/* FAM */
++#cmakedefine  HAVE_FAM_H
++#cmakedefine  HAVE_FAMNOEXISTS
++
++/* getopt */
++#cmakedefine  HAVE_GETOPT_H
++
++#cmakedefine  HAVE_INTTYPES_H
++
++/* LDAP */
++#cmakedefine  HAVE_LDAP_H
++#cmakedefine  HAVE_LIBLDAP
++#cmakedefine  HAVE_LBER_H
++#cmakedefine  HAVE_LIBLBER
++#cmakedefine  LDAP_DEPRECATED 1
++
++/* XML */
++#cmakedefine  HAVE_LIBXML_H
++#cmakedefine  HAVE_LIBXML
++
++/* PCRE */
++#cmakedefine  HAVE_PCRE_H
++#cmakedefine  HAVE_LIBPCRE
++
++#cmakedefine  HAVE_POLL_H
++#cmakedefine  HAVE_PWD_H
++
++/* sqlite3 */
++#cmakedefine  HAVE_SQLITE3_H
++#cmakedefine  HAVE_LIBPCRE
++
++#cmakedefine  HAVE_STDDEF_H
++#cmakedefine  HAVE_STDINT_H
++#cmakedefine  HAVE_SYSLOG_H
++
++/* UUID */
++#cmakedefine  HAVE_UUID_UUID_H
++#cmakedefine  HAVE_LIBUUID
++
++/* ZLIB */
++#cmakedefine  HAVE_ZLIB_H
++#cmakedefine  HAVE_LIBZ
++
++/* lua */
++#cmakedefine  HAVE_LUA_H
++#cmakedefine  HAVE_LIBLUA
++
++/* gdbm */
++#cmakedefine  HAVE_GDBM_H
++#cmakedefine  HAVE_GDBM
++
++/* memcache */
++#cmakedefine  HAVE_MEMCACHE_H
++
++/* inotify */
++#cmakedefine  HAVE_INOTIFY_INIT
++#cmakedefine  HAVE_SYS_INOTIFY_H
++
++/* Types */
++#cmakedefine  HAVE_SOCKLEN_T
++#cmakedefine  SIZEOF_LONG ${SIZEOF_LONG}
++#cmakedefine  SIZEOF_OFF_T ${SIZEOF_OFF_T}
++
++/* Functions */
++#cmakedefine  HAVE_CHROOT
++#cmakedefine  HAVE_CRYPT
++#cmakedefine  HAVE_EPOLL_CTL
++#cmakedefine  HAVE_FORK
++#cmakedefine  HAVE_GETRLIMIT
++#cmakedefine  HAVE_GETUID
++#cmakedefine  HAVE_GMTIME_R
++#cmakedefine  HAVE_INET_NTOP
++#cmakedefine  HAVE_KQUEUE
++#cmakedefine  HAVE_LOCALTIME_R
++#cmakedefine  HAVE_LSTAT
++#cmakedefine  HAVE_MADVISE
++#cmakedefine  HAVE_MEMCPY
++#cmakedefine  HAVE_MEMSET
++#cmakedefine  HAVE_MMAP
++#cmakedefine  HAVE_PATHCONF
++#cmakedefine  HAVE_POLL
++#cmakedefine  HAVE_PORT_CREATE
++#cmakedefine  HAVE_PRCTL
++#cmakedefine  HAVE_PREAD
++#cmakedefine  HAVE_POSIX_FADVISE
++#cmakedefine  HAVE_SELECT
++#cmakedefine  HAVE_SENDFILE
++#cmakedefine  HAVE_SEND_FILE
++#cmakedefine  HAVE_SENDFILE64
++#cmakedefine  HAVE_SENDFILEV
++#cmakedefine  HAVE_SIGACTION
++#cmakedefine  HAVE_SIGNAL
++#cmakedefine  HAVE_SIGTIMEDWAIT
++#cmakedefine  HAVE_STRPTIME
++#cmakedefine  HAVE_SYSLOG
++#cmakedefine  HAVE_WRITEV
++
++/* libcrypt */
++#cmakedefine  HAVE_CRYPT_H
++#cmakedefine  HAVE_LIBCRYPT
++
++/* fastcgi */
++#cmakedefine HAVE_FASTCGI_H
++#cmakedefine HAVE_FASTCGI_FASTCGI_H
++
++#cmakedefine LIGHTTPD_STATIC
 Index: src/http_auth.c
 ===================================================================
---- src/http_auth.c	(.../tags/lighttpd-1.4.20)	(revision 2336)
-+++ src/http_auth.c	(.../branches/lighttpd-1.4.x)	(revision 2336)
+--- src/http_auth.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/http_auth.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
 @@ -57,22 +57,25 @@
  
  static const char base64_pad = '=';
@@ -329,10 +748,27 @@
  
  		/* 3. */
  		if (NULL == (ldap = ldap_init(p->conf.auth_ldap_hostname->ptr, LDAP_PORT))) {
+Index: src/mod_redirect.c
+===================================================================
+--- src/mod_redirect.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/mod_redirect.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
+@@ -178,11 +178,7 @@
+ 
+ 	mod_redirect_patch_connection(srv, con, p);
+ 
+-	buffer_copy_string_buffer(p->match_buf, con->uri.path);
+-	if (con->uri.query->used > 0) {
+-		buffer_append_string_len(p->match_buf, CONST_STR_LEN("?"));
+-		buffer_append_string_buffer(p->match_buf, con->uri.query);
+-	}
++	buffer_copy_string_buffer(p->match_buf, con->request.uri);
+ 
+ 	for (i = 0; i < p->conf.redirect->used; i++) {
+ 		pcre *match;
 Index: src/http_auth.h
 ===================================================================
---- src/http_auth.h	(.../tags/lighttpd-1.4.20)	(revision 2336)
-+++ src/http_auth.h	(.../branches/lighttpd-1.4.x)	(revision 2336)
+--- src/http_auth.h	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/http_auth.h	(.../branches/lighttpd-1.4.x)	(revision 2371)
 @@ -63,7 +63,7 @@
  
  	mod_auth_plugin_config **config_storage;
@@ -342,10 +778,32 @@
  } mod_auth_plugin_data;
  
  int http_auth_basic_check(server *srv, connection *con, mod_auth_plugin_data *p, array *req, buffer *url, const char *realm_str);
+Index: src/mod_webdav.c
+===================================================================
+--- src/mod_webdav.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/mod_webdav.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
+@@ -1026,6 +1026,8 @@
+ 				if (MAP_FAILED == (c->file.mmap.start = mmap(0, c->file.length, PROT_READ, MAP_SHARED, c->file.fd, 0))) {
+ 					log_error_write(srv, __FILE__, __LINE__, "ssbd", "mmap failed: ",
+ 							strerror(errno), c->file.name,  c->file.fd);
++					close(c->file.fd);
++					c->file.fd = -1;
+ 
+ 					return -1;
+ 				}
+@@ -1723,6 +1725,8 @@
+ 					if (MAP_FAILED == (c->file.mmap.start = mmap(0, c->file.length, PROT_READ, MAP_SHARED, c->file.fd, 0))) {
+ 						log_error_write(srv, __FILE__, __LINE__, "ssbd", "mmap failed: ",
+ 								strerror(errno), c->file.name,  c->file.fd);
++						close(c->file.fd);
++						c->file.fd = -1;
+ 
+ 						return HANDLER_ERROR;
+ 					}
 Index: src/mod_compress.c
 ===================================================================
---- src/mod_compress.c	(.../tags/lighttpd-1.4.20)	(revision 2336)
-+++ src/mod_compress.c	(.../branches/lighttpd-1.4.x)	(revision 2336)
+--- src/mod_compress.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/mod_compress.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
 @@ -49,6 +49,7 @@
  	buffer *compress_cache_dir;
  	array  *compress;
@@ -471,10 +929,42 @@
  
  				if (matched_encodings) {
  					const char *dflt_gzip = "gzip";
+Index: src/spawn-fcgi.c
+===================================================================
+--- src/spawn-fcgi.c	(.../tags/lighttpd-1.4.20)	(revision 2371)
++++ src/spawn-fcgi.c	(.../branches/lighttpd-1.4.x)	(revision 2371)
+@@ -58,7 +58,7 @@
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/lighttpd-branch.diff?r1=1.42&r2=1.43&f=u



More information about the pld-cvs-commit mailing list