github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/CHANGES.txt (about) 1 -*- coding: utf-8 -*- 2 Changes with Apache 2.2.34 3 4 *) Allow single-char field names inadvertantly disallowed in 2.2.32. 5 PR 61220. [Yann Ylavic] 6 7 Changes with Apache 2.2.33 8 9 *) SECURITY: CVE-2017-7668 (cve.mitre.org) 10 The HTTP strict parsing changes added in 2.2.32 and 2.4.24 introduced a 11 bug in token list parsing, which allows ap_find_token() to search past 12 the end of its input string. By maliciously crafting a sequence of 13 request headers, an attacker may be able to cause a segmentation fault, 14 or to force ap_find_token() to return an incorrect value. 15 [Jacob Champion] 16 17 *) SECURITY: CVE-2017-3169 (cve.mitre.org) 18 mod_ssl may dereference a NULL pointer when third-party modules call 19 ap_hook_process_connection() during an HTTP request to an HTTPS port. 20 [Yann Ylavic] 21 22 *) SECURITY: CVE-2017-3167 (cve.mitre.org) 23 Use of the ap_get_basic_auth_pw() by third-party modules outside of the 24 authentication phase may lead to authentication requirements being 25 bypassed. 26 [Emmanuel Dreyfus <manu netbsd.org>, Jacob Champion, Eric Covener] 27 28 *) SECURITY: CVE-2017-7679 (cve.mitre.org) 29 mod_mime can read one byte past the end of a buffer when sending a 30 malicious Content-Type response header. [Yann Ylavic] 31 32 *) Fix HttpProtocolOptions to inherit from global to VirtualHost scope. 33 [Joe Orton] 34 35 Changes with Apache 2.2.32 36 37 *) SECURITY: CVE-2016-8743 (cve.mitre.org) 38 Enforce HTTP request grammar corresponding to RFC7230 for request lines 39 and request headers, to prevent response splitting and cache pollution by 40 malicious clients or downstream proxies. [William Rowe, Stefan Fritsch] 41 42 *) Validate HTTP response header grammar defined by RFC7230, resulting 43 in a 500 error in the event that invalid response header contents are 44 detected when serving the response, to avoid response splitting and cache 45 pollution by malicious clients, upstream servers or faulty modules. 46 [Stefan Fritsch, Eric Covener, Yann Ylavic] 47 48 *) core: Mitigate [f]cgi CVE-2016-5387 "httpoxy" issues. 49 [Dominic Scheirlinck <dominic vendhq.com>, Yann Ylavic] 50 51 *) core: Avoid a possible truncation of the faulty header included in the 52 HTML response when LimitRequestFieldSize is reached. [Yann Ylavic] 53 54 *) core: Enforce LimitRequestFieldSize after multiple headers with the same 55 name have been merged. [Stefan Fritsch] 56 57 *) core: Drop Content-Length header and message-body from HTTP 204 responses. 58 PR 51350 [Luca Toscano] 59 60 *) core: Permit unencoded ';' characters to appear in proxy requests and 61 Location: response headers. Corresponds to modern browser behavior. 62 [William Rowe] 63 64 *) core: ap_rgetline_core now pulls from r->proto_input_filters. 65 66 *) core: Correctly parse an IPv6 literal host specification in an absolute 67 URL in the request line. [Stefan Fritsch] 68 69 *) core: New directive RegisterHttpMethod for registering non-standard 70 HTTP methods. [Stefan Fritsch] 71 72 *) core: Limit to ten the number of tolerated empty lines between request. 73 [Yann Ylavic] 74 75 *) core: reject NULLs in request line or request headers. 76 PR 43039 [Nick Kew] 77 78 *) mod_proxy: Use the correct server name for SNI in case the backend 79 SSL connection itself is established via a proxy server. 80 PR 57139 [Szabolcs Gyurko <szabolcs gyurko.org>] 81 82 *) Fix potential rejection of valid MaxMemFree and ThreadStackSize 83 directives. [Mike Rumph <mike.rumph oracle.com>] 84 85 *) mod_ssl: Support compilation against libssl built with OPENSSL_NO_SSL3. 86 [Kaspar Brand] 87 88 *) mod_proxy: Correctly consider error response codes by the backend when 89 processing failonstatus. PR 59869 [Ruediger Pluem] 90 91 *) mod_proxy: Play/restore the TLS-SNI on new backend connections which 92 had to be issued because the remote closed the previous/reusable one 93 during idle (keep-alive) time. [Yann Ylavic] 94 95 *) mod_ssl: Fix a possible memory leak on restart for custom [EC]DH params. 96 [Jan Kaluza, Yann Ylavic] 97 98 *) mod_proxy: Fix a regression with 2.2.31 that caused inherited workers to 99 use a different scoreboard slot then the original one. PR 58267. 100 [Ruediger Pluem] 101 102 *) mod_proxy: Fix a race condition that caused a failed worker to be retried 103 before the retry period is over. [Ruediger Pluem] 104 105 *) mod_proxy: don't recyle backend announced "Connection: close" connections 106 to avoid reusing it should the close be effective after some new request 107 is ready to be sent. [Yann Ylavic] 108 109 *) mod_mem_cache: Fix concurrent removal of stale entries which could lead 110 to a crash. PR 43724. [Yann Ylavic] 111 112 *) mime.types: add common extension "m4a" for MPEG 4 Audio. 113 PR 57895 [Dylan Millikin <dylan.millikin gmail.com>] 114 115 *) mod_substitute: Allow to configure the patterns merge order with the new 116 SubstituteInheritBefore on|off directive. PR 57641 117 [Marc.Stern <Marc.Stern approach.be>, Yann Ylavic, William Rowe] 118 119 *) mod_mem_cache: Don't cache incomplete responses when the client 120 connection is aborted before the body is fully read. PR 45049. 121 [Nick Pace <nick simplylogic.net>, Edward Lu, Yann Ylavic] 122 123 *) abs: Include OPENSSL_Applink when compiling on Windows, to resolve 124 failures under Visual Studio 2015 and other mismatched MSVCRT flavors. 125 PR59630 [Jan Ehrhardt <phpdev ehrhardt.nl>] 126 127 *) core: Support custom ErrorDocuments for HTTP 501 and 414 status codes. 128 PR 57167 [Edward Lu <Chaosed0 gmail.com>] 129 130 Changes with Apache 2.2.31 131 132 *) Correct win32 build issues for mod_proxy exports, OpenSSL 1.0.x headers. 133 [Yann Ylavic, Gregg Smith] 134 135 Changes with Apache 2.2.30 (not released) 136 137 *) SECURITY: CVE-2015-3183 (cve.mitre.org) 138 core: Fix chunk header parsing defect. 139 Remove apr_brigade_flatten(), buffering and duplicated code from 140 the HTTP_IN filter, parse chunks in a single pass with zero copy. 141 Limit accepted chunk-size to 2^63-1 and be strict about chunk-ext 142 authorized characters. [Graham Leggett, Yann Ylavic] 143 144 *) http: Fix LimitRequestBody checks when there is no more bytes to read. 145 [Michael Kaufmann <mail michael-kaufmann.ch>] 146 147 *) core: Allow spaces after chunk-size for compatibility with implementations 148 using a pre-filled buffer. [Yann Ylavic, Jeff Trawick] 149 150 *) mod_ssl: bring SNI behavior into better conformance with RFC 6066: 151 no longer send warning-level unrecognized_name(112) alerts. PR 56241. 152 [Kaspar Brand] 153 154 *) http: Make ap_die() robust against any HTTP error code and not modify 155 response status (finally logged) when nothing is to be done. PR 56035. 156 [Yann Ylavic] 157 158 *) core, modules: Avoid error response/document handling by the core if some 159 handler or input filter already did it while reading the request (causing 160 a double response body). [Yann Ylavic] 161 162 *) FreeBSD: Disable IPv4-mapped listening sockets by default for versions 163 5+ instead of just for FreeBSD 5. PR 53824. [Jeff Trawick, 164 Olli Hauer <ohauer gmx de>] 165 166 *) mod_proxy: use the original (non absolute) form of the request-line's URI 167 for requests embedded in CONNECT payloads used to connect SSL backends via 168 a ProxyRemote forward-proxy. PR 55892. [Hendrik Harms <hendrik.harms 169 gmail com>, William Rowe, Yann Ylavic] 170 171 *) mpm_winnt: Accept utf-8 (Unicode) service names and descriptions for 172 internationalization. [William Rowe] 173 174 *) mod_log_config: Implement logging for sub second timestamps and 175 request end time. [Rainer Jung] 176 177 *) mod_log_config: Ensure that time data is consistent if multiple 178 duration patterns are used in combination, e.g. %D and %{ms}T. 179 [Rainer Jung] 180 181 *) mod_log_config: Add "%{UNIT}T" format to output request duration in 182 seconds, milliseconds or microseconds depending on UNIT ("s", "ms", "us"). 183 [Ben Reser, Rainer Jung] 184 185 *) In alignment with RFC 7525, the default recommended SSLCipherSuite 186 and SSLProxyCipherSuite now exclude RC4 as well as MD5. Also, the 187 default recommended SSLProtocol and SSLProxyProtocol directives now 188 exclude SSLv3. Existing configurations must be adjusted by the 189 administrator. [William Rowe] 190 191 *) core: Avoid potential use of uninitialized (NULL) request data in 192 request line error path. [Yann Ylavic] 193 194 *) mod_proxy_http: Use the "Connection: close" header for requests to 195 backends not recycling connections (disablereuse), including the default 196 reverse and forward proxies. [Yann Ylavic] 197 198 *) mod_proxy: Add ap_connection_reusable() for checking if a connection 199 is reusable as of this point in processing. [Jeff Trawick] 200 201 *) mod_proxy: Reuse proxy/balancer workers' parameters and scores across 202 graceful restarts, even if new workers are added, old ones removed, or 203 the order changes. [Jan Kaluza, Yann Ylavic] 204 205 *) mod_ssl: 'SSLProtocol ALL' was being ignored in virtual host context. 206 PR 57100. [Michael Kaufmann <apache-bugzilla michael-kaufmann.ch>, 207 Yann Ylavic] 208 209 *) mod_ssl: Improve handling of ephemeral DH and ECDH keys by 210 allowing custom parameters to be configured via SSLCertificateFile, 211 and by adding standardized DH parameters for 1024/2048/3072/4096 bits. 212 Unless custom parameters are configured, the standardized parameters 213 are applied based on the certificate's RSA/DSA key size. [Kaspar Brand] 214 215 *) mod_ssl: drop support for export-grade ciphers with ephemeral RSA 216 keys, and unconditionally disable aNULL, eNULL and EXP ciphers 217 (not overridable via SSLCipherSuite). [Kaspar Brand] 218 219 *) mod_ssl: Add support for configuring persistent TLS session ticket 220 encryption/decryption keys (useful for clustered environments). 221 [Paul Querna, Kaspar Brand] 222 223 *) SSLProtocol and SSLCipherSuite recommendations in the example/default 224 conf/extra/httpd-ssl.conf file are now global in scope, affecting all 225 VirtualHosts (matching 2.4 default configuration). [William Rowe] 226 227 *) mod_authn_dbd: Fix lifetime of DB lookup entries independently of the 228 selected DB engine. PR 46421. [Jan Kaluza]. 229 230 *) Turn static function get_server_name_for_url() into public 231 ap_get_server_name_for_url() and use it where appropriate. This 232 fixes mod_rewrite generating invalid URLs for redirects to IPv6 233 literal addresses. PR 52831 [Stefan Fritsch] 234 235 *) dav_validate_request: avoid validating locks and ETags when there are 236 no If headers providing them on a resource we aren't modifying. 237 [Ben Reser] 238 239 *) mod_ssl: New directive SSLSessionTickets (On|Off). 240 The directive controls the use of TLS session tickets (RFC 5077), 241 default value is "On" (unchanged behavior). 242 Session ticket creation uses a random key created during web 243 server startup and recreated during restarts. No other key 244 recreation mechanism is available currently. Therefore using session 245 tickets without restarting the web server with an appropriate frequency 246 (e.g. daily) compromises perfect forward secrecy. [Rainer Jung] 247 248 *) mod_deflate: Define APR_INT32_MAX when it is missing so to be able to 249 compile against APR-1.2.x (minimum required version). [Yann Ylavic] 250 251 *) mod_reqtimeout: Don't let pipelining checks interfere with the timeouts 252 computed for subsequent requests. PR 56729. [Eric Covener] 253 254 Changes with Apache 2.2.29 255 256 *) Corrected docs/manual pages for new MergeTrailers directive and other 257 out of date documentation. [William Rowe] 258 259 Changes with Apache 2.2.28 (not released) 260 261 *) SECURITY: CVE-2014-0118 (cve.mitre.org) 262 mod_deflate: The DEFLATE input filter (inflates request bodies) now 263 limits the length and compression ratio of inflated request bodies to avoid 264 denial of service via highly compressed bodies. See directives 265 DeflateInflateLimitRequestBody, DeflateInflateRatioLimit, 266 and DeflateInflateRatioBurst. [Yann Ylavic, Eric Covener] 267 268 *) SECURITY: CVE-2014-0231 (cve.mitre.org) 269 mod_cgid: Fix a denial of service against CGI scripts that do 270 not consume stdin that could lead to lingering HTTPD child processes 271 filling up the scoreboard and eventually hanging the server. By 272 default, the client I/O timeout (Timeout directive) now applies to 273 communication with scripts. The CGIDScriptTimeout directive can be 274 used to set a different timeout for communication with scripts. 275 [Rainer Jung, Eric Covener, Yann Ylavic] 276 277 *) SECURITY: CVE-2014-0226 (cve.mitre.org) 278 Fix a race condition in scoreboard handling, which could lead to 279 a heap buffer overflow. [Joe Orton, Eric Covener, Jeff Trawick] 280 281 *) SECURITY: CVE-2013-5704 (cve.mitre.org) 282 core: HTTP trailers could be used to replace HTTP headers 283 late during request processing, potentially undoing or 284 otherwise confusing modules that examined or modified 285 request headers earlier. Adds "MergeTrailers" directive to restore 286 legacy behavior. [Edward Lu, Yann Ylavic, Joe Orton, Eric Covener] 287 288 *) core: Detect incomplete request and response bodies, log an error and 289 forward it to the underlying filters. PR 55475. [Yann Ylavic] 290 291 *) mod_deflate: Handle Zlib header and validation bytes received in multiple 292 chunks. PR 46146. [Yann Ylavic] 293 294 *) mod_proxy: Don't reuse a SSL backend connection whose requested SNI 295 differs. PR 55782. [Yann Ylavic] 296 297 *) mod_deflate: Fix inflation of files larger than 4GB. PR 56062. 298 [Lukas Bezdicka <social v3.sk>] 299 300 *) mod_dav: Fix improper encoding in PROPFIND responses. PR 56480. 301 [Ben Reser] 302 303 *) mod_ssl: Extend the scope of SSLSessionCacheTimeout to sessions 304 resumed by TLS session resumption (RFC 5077). [Rainer Jung] 305 306 *) mod_proxy_ajp: Forward local IP address as a custom request attribute 307 like we already do for the remote port. [Rainer Jung] 308 309 *) mod_deflate: Don't fail when flushing inflated data to the user-agent 310 and that coincides with the end of stream ("Zlib error flushing inflate 311 buffer"). PR 56196. [Christoph Fausak <christoph fausak glueckkanja.com>] 312 313 *) mod_cache, mod_disk_cache: With CacheLock enabled, responses with a Vary 314 header might not get the benefit of the thundering herd protection due to 315 an incorrect internal cache key. PR 50317. 316 [Ruediger Pluem, Jan Kaluza, Yann Ylavic] 317 318 *) mod_rewrite: Support session cookies with the CO= flag when later 319 parameters are used. The doc for this implied the feature had been 320 backported for quite some time. PR56014 [Eric Covener] 321 322 *) mod_cache: Don't remove stale cache entries that cannot be conditionally 323 revalidated. This prevents the thundering herd protection from serving 324 stale responses during a revalidation. PR 50317. 325 [Eric Covener, Jan Kaluza, Ruediger Pluem] 326 327 *) core: Increase TCP_DEFER_ACCEPT socket option to from 1 to 30 seconds. 328 PR 41270. [Dean Gaudet <dean arctic org>] 329 330 Changes with Apache 2.2.27 331 332 *) SECURITY: CVE-2014-0098 (cve.mitre.org) 333 Clean up cookie logging with fewer redundant string parsing passes. 334 Log only cookies with a value assignment. Prevents segfaults when 335 logging truncated cookies. 336 [William Rowe, Ruediger Pluem, Jim Jagielski] 337 338 *) SECURITY: CVE-2013-6438 (cve.mitre.org) 339 mod_dav: Keep track of length of cdata properly when removing 340 leading spaces. Eliminates a potential denial of service from 341 specifically crafted DAV WRITE requests 342 [Amin Tora <Amin.Tora neustar.biz>] 343 344 *) core: draft-ietf-httpbis-p1-messaging-23 corrections regarding 345 TE/CL conflicts. [Yann Ylavic <ylavic.dev gmail com>, Jim Jagielski] 346 347 *) mod_proxy_http: Core dumped under high load. PR 50335. 348 [Jan Kaluza <jkaluza redhat.com>] 349 350 *) proxy_util: NULL terminate the right buffer in 'send_http_connect'. 351 [Christophe Jaillet] 352 353 *) mod_proxy: Remove (never documented) <Proxy ~ wildcard-url> syntax which 354 is equivalent to <ProxyMatch wildcard-url>. [Christophe Jaillet] 355 356 *) mod_ldap: Fix a potential memory leak or corruption. PR 54936. 357 [Zhenbo Xu <zhenbo1987 gmail com>] 358 359 *) mod_ssl: Do not perform SNI / Host header comparison in case of a 360 forward proxy request. [Ruediger Pluem] 361 362 *) mod_rewrite: Add mod_rewrite.h to the headers installed on Windows. 363 PR46679 [Bob Ionescu] 364 365 Changes with Apache 2.2.26 366 367 *) mod_dav: dav_resource->uri treated as unencoded. This was an 368 unnecessary ABI changed introduced in 2.2.25 PR 55397. [Ben Reser] 369 370 *) mod_dav: Do not validate locks against parent collection of COPY 371 source URI. PR 55304. [Ben Reser] 372 373 *) mod_ssl: Check SNI hostname against Host header case-insensitively. 374 PR 49491. [Mayank Agrawal <magrawal.08 gmail.com>] 375 376 *) mod_ssl: enable support for ECC keys and ECDH ciphers. Tested against 377 OpenSSL 1.0.0b3. [Vipul Gupta vipul.gupta sun.com, Sander Temme, 378 Stefan Fritsch] 379 380 *) mod_ssl: Change default for SSLCompression to off, as compression 381 causes security issues in most setups. (The so called "CRIME" attack). 382 [Stefan Fritsch] 383 384 *) mod_ssl: Fix compilation error when OpenSSL does not contain 385 support for SSLv2. Problem was introduced in 2.2.25. PR 55194. 386 [Rainer Jung, Kaspar Brand] 387 388 *) mod_dav: Fix double encoding of URIs in XML and Location header (caused 389 by unintential ABI change in 2.2.25). PR 55397. [Ben Reser] 390 391 Changes with Apache 2.2.25 392 393 *) SECURITY: CVE-2013-1896 (cve.mitre.org) 394 mod_dav: Sending a MERGE request against a URI handled by mod_dav_svn with 395 the source href (sent as part of the request body as XML) pointing to a 396 URI that is not configured for DAV will trigger a segfault. [Ben Reser 397 <ben reser.org>] 398 399 *) SECURITY: CVE-2013-1862 (cve.mitre.org) 400 mod_rewrite: Ensure that client data written to the RewriteLog is 401 escaped to prevent terminal escape sequences from entering the 402 log file. [Eric Covener, Jeff Trawick, Joe Orton] 403 404 *) core: Limit ap_pregsub() to 64MB and add ap_pregsub_ex() for longer 405 strings. The default limit for ap_pregsub() can be adjusted at compile 406 time by defining AP_PREGSUB_MAXLEN. [Stefan Fritsch, Jeff Trawick] 407 408 *) core: Support the SINGLE_LISTEN_UNSERIALIZED_ACCEPT optimization 409 on Linux kernel versions 3.x and above. PR 55121. [Bradley Heilbrun 410 <apache heilbrun.org>] 411 412 *) mod_setenvif: Log error on substitution overflow. 413 [Stefan Fritsch] 414 415 *) mod_ssl/proxy: enable the SNI extension for backend TLS connections 416 [Kaspar Brand] 417 418 *) mod_proxy: Use the the same hostname for SNI as for the HTTP request when 419 forwarding to SSL backends. PR 53134. 420 [Michael Weiser <michael weiser.dinsnail.net>, Ruediger Pluem] 421 422 *) mod_ssl: Quiet FIPS mode weak keys disabled and FIPS not selected emits 423 in the error log to debug level. [William Rowe] 424 425 *) mod_ssl: Catch missing, mismatched or encrypted client cert/key pairs 426 with SSLProxyMachineCertificateFile/Path directives. PR 52212, PR 54698. 427 [Keith Burdis <keith burdis.org>, Joe Orton, Kaspar Brand] 428 429 *) mod_proxy_balancer: Added balancer parameter failontimeout to allow server 430 admin to configure an IO timeout as an error in the balancer. 431 [Daniel Ruggeri] 432 433 *) mod_authnz_ldap: Allow using exec: calls to obtain LDAP bind 434 password. [Daniel Ruggeri] 435 436 *) htdigest: Fix buffer overflow when reading digest password file 437 with very long lines. PR 54893. [Rainer Jung] 438 439 *) mod_dav: Ensure URI is correctly uriencoded on return. PR 54611 440 [Timothy Wood <tjw omnigroup.com>] 441 442 *) mod_dav: Make sure that when we prepare an If URL for Etag comparison, 443 we compare unencoded paths. PR 53910 [Timothy Wood <tjw omnigroup.com>] 444 445 *) mod_dav: Sending an If or If-Match header with an invalid ETag doesn't 446 result in a 412 Precondition Failed for a COPY operation. PR54610 447 [Timothy Wood <tjw omnigroup.com>] 448 449 *) mod_dav: When a PROPPATCH attempts to remove a non-existent dead 450 property on a resource for which there is no dead property in the same 451 namespace httpd segfaults. PR 52559 [Diego Santa Cruz 452 <diego.santaCruz spinetix.com>] 453 454 *) mod_dav: Do not fail PROPPATCH when prop namespace is not known. 455 PR 52559 [Diego Santa Cruz <diego.santaCruz spinetix.com>] 456 457 *) mod_dav: Do not segfault on PROPFIND with a zero length DBM. 458 PR 52559 [Diego Santa Cruz <diego.santaCruz spinetix.com>] 459 460 Changes with Apache 2.2.24 461 462 *) SECURITY: CVE-2012-3499 (cve.mitre.org) 463 Various XSS flaws due to unescaped hostnames and URIs HTML output in 464 mod_info, mod_status, mod_imagemap, mod_ldap, and mod_proxy_ftp. 465 [Jim Jagielski, Stefan Fritsch, Niels Heinen <heinenn google com>] 466 467 *) SECURITY: CVE-2012-4558 (cve.mitre.org) 468 XSS in mod_proxy_balancer manager interface. [Jim Jagielski, 469 Niels Heinen <heinenn google com>] 470 471 *) mod_rewrite: Stop merging RewriteBase down to subdirectories 472 unless new option 'RewriteOptions MergeBase' is configured. 473 Merging RewriteBase was unconditionally turned on in 2.2.23. 474 PR 53963. [Eric Covener] 475 476 *) mod_ssl: Send the error message for speaking http to an https port using 477 HTTP/1.0 instead of HTTP/0.9, and omit the link that may be wrong when 478 using SNI. PR 50823. [Stefan Fritsch] 479 480 *) mod_ssl: log revoked certificates at level INFO 481 instead of DEBUG. PR 52162. [Stefan Fritsch] 482 483 *) mod_proxy_ajp: Support unknown HTTP methods. PR 54416. 484 [Rainer Jung] 485 486 *) mod_dir: Add support for the value 'disabled' in FallbackResource. 487 [Vincent Deffontaines] 488 489 *) mod_ldap: Fix regression in handling "server unavailable" errors on 490 Windows. PR 54140. [Eric Covener] 491 492 *) mod_ssl: fix a regression with the string rendering of the "UID" RDN 493 introduced in 2.2.15. PR 54510. [Kaspar Brand] 494 495 *) ab: add TLS1.1/TLS1.2 options to -f switch, and adapt output 496 to more accurately report the negotiated protocol. PR 53916. 497 [Nicolás Pernas Maradei <nico emutex com>, Kaspar Brand] 498 499 *) mod_cache: Explicitly allow cache implementations to cache a 206 Partial 500 Response if they so choose to do so. Previously an attempt to cache a 206 501 was arbitrarily allowed if the response contained an Expires or 502 Cache-Control header, and arbitrarily denied if both headers were missing. 503 Currently the disk and memory cache providers do not cache 206 Partial 504 Responses. [Graham Leggett] 505 506 *) core: Remove unintentional APR 1.3 dependency introduced with 507 Apache 2.2.22. [Eric Covener] 508 509 *) core: Use a TLS 1.0 close_notify alert for internal dummy connection if 510 the chosen listener is configured for https. [Joe Orton] 511 512 *) mod_ssl: Add new directive SSLCompression to disable TLS-level 513 compression. PR 53219. [Björn Jacke <bjoern j3e de>, Stefan Fritsch] 514 515 Changes with Apache 2.2.23 516 517 *) SECURITY: CVE-2012-0883 (cve.mitre.org) 518 envvars: Fix insecure handling of LD_LIBRARY_PATH that could lead to the 519 current working directory to be searched for DSOs. [Stefan Fritsch] 520 521 *) SECURITY: CVE-2012-2687 (cve.mitre.org) 522 mod_negotiation: Escape filenames in variant list to prevent a 523 possible XSS for a site where untrusted users can upload files to 524 a location with MultiViews enabled. [Niels Heinen <heinenn google.com>] 525 526 *) htdbm, htpasswd: Don't crash if crypt() fails (e.g. with FIPS enabled). 527 [Paul Wouters <pwouters redhat.com>, Joe Orton] 528 529 *) mod_ldap: Treat the "server unavailable" condition as a transient 530 error with all LDAP SDKs. [Filip Valder <filip.valder vsb.cz>] 531 532 *) core: Add filesystem paths to access denied / access failed messages. 533 [Eric Covener] 534 535 *) core: Fix error handling in ap_scan_script_header_err_brigade() if there 536 is no EOS bucket in the brigade. PR 48272. [Stefan Fritsch] 537 538 *) core: Prevent "httpd -k restart" from killing server in presence of 539 config error. [Joe Orton] 540 541 *) mod_ssl: when compiled against OpenSSL 1.0.1 or later, allow explicit 542 control of TLSv1.1 and TLSv1.2 through the SSLProtocol directive, 543 adding TLSv1.1 and TLSv1.2 support by default given 'SSLProtocol All'. 544 [Kaspar Brand, William Rowe] 545 546 *) mod_log_config: Fix %{abc}C truncating cookie values at first "=". 547 PR 53104. [Greg Ames] 548 549 *) Unix MPMs: Fix small memory leak in parent process if connect() 550 failed when waking up children. [Joe Orton] 551 552 *) mod_proxy_ajp: Add support for 'ProxyErrorOverride on'. PR 50945. 553 [Peter Pramberger <peter pramberger.at>, Jim Jagielski] 554 555 *) Added SSLProxyMachineCertificateChainFile directive so the proxy client 556 can select the proper client certificate when using a chain and the 557 remote server only lists the root CA as allowed. 558 559 *) mpm_event, mpm_worker: Remain active amidst prevalent child process 560 resource shortages. [Jeff Trawick] 561 562 *) mod_rewrite: Add "AllowAnyURI" option. PR 52774. [Joe Orton] 563 564 *) mod_rewrite: Fix the RewriteEngine directive to work within a 565 location. Previously, once RewriteEngine was switched on globally, 566 it was impossible to switch off. [Graham Leggett] 567 568 *) mod_proxy_balancer: Restore balancing after a failed worker has 569 recovered when using lbmethod_bybusyness. PR 48735. [Jeff Trawick] 570 571 *) mod_dumpio: Properly handle errors from subsequent input filters. 572 PR 52914. [Stefan Fritsch] 573 574 *) mpm_worker: Fix cases where the spawn rate wasn't reduced after child 575 process resource shortages. [Jeff Trawick] 576 577 *) mpm_prefork: Reduce spawn rate after a child process exits due to 578 unexpected poll or accept failure. [Jeff Trawick] 579 580 *) core: Adjust ap_scan_script_header_err*() to prevent mod_cgi and mod_cgid 581 from logging bogus data in case of errors. [Stefan Fritsch] 582 583 *) mod_disk_cache, mod_mem_cache: Decline the opportunity to cache if the 584 response is a 206 Partial Content. This stops a reverse proxied partial 585 response from becoming cached, and then being served in subsequent 586 responses. PR 49113. [Graham Leggett] 587 588 *) configure: Fix usage with external apr and apu in non-default paths 589 and recent gcc versions >= 4.6. [Jean-Frederic Clere] 590 591 *) core: Fix building against PCRE 8.30 by switching from the obsolete 592 pcre_info() to pcre_fullinfo(). PR 52623 [Ruediger Pluem, Rainer Jung] 593 594 *) mod_proxy: Add the forcerecovery balancer parameter that determines if 595 recovery for balancer workers is enforced. [Ruediger Pluem] 596 597 Changes with Apache 2.2.22 598 599 *) SECURITY: CVE-2011-3368 (cve.mitre.org) 600 Reject requests where the request-URI does not match the HTTP 601 specification, preventing unexpected expansion of target URLs in 602 some reverse proxy configurations. [Joe Orton] 603 604 *) SECURITY: CVE-2011-3607 (cve.mitre.org) 605 Fix integer overflow in ap_pregsub() which, when the mod_setenvif module 606 is enabled, could allow local users to gain privileges via a .htaccess 607 file. [Stefan Fritsch, Greg Ames] 608 609 *) SECURITY: CVE-2011-4317 (cve.mitre.org) 610 Resolve additional cases of URL rewriting with ProxyPassMatch or 611 RewriteRule, where particular request-URIs could result in undesired 612 backend network exposure in some configurations. 613 [Joe Orton] 614 615 *) SECURITY: CVE-2012-0021 (cve.mitre.org) 616 mod_log_config: Fix segfault (crash) when the '%{cookiename}C' log format 617 string is in use and a client sends a nameless, valueless cookie, causing 618 a denial of service. The issue existed since version 2.2.17. PR 52256. 619 [Rainer Canavan <rainer-apache 7val com>] 620 621 *) SECURITY: CVE-2012-0031 (cve.mitre.org) 622 Fix scoreboard issue which could allow an unprivileged child process 623 to cause the parent to crash at shutdown rather than terminate 624 cleanly. [Joe Orton] 625 626 *) SECURITY: CVE-2012-0053 (cve.mitre.org) 627 Fix an issue in error responses that could expose "httpOnly" cookies 628 when no custom ErrorDocument is specified for status code 400. 629 [Eric Covener] 630 631 *) SECURITY: CVE-2012-4557 (cve.mitre.org) 632 mod_proxy_ajp: Try to prevent a single long request from marking a worker 633 in error. [Jean-Frederic Clere] 634 635 *) config: Update the default mod_ssl configuration: Disable SSLv2, only 636 allow >= 128bit ciphers, add commented example for speed optimized cipher 637 list, limit MSIE workaround to MSIE <= 5. [Kaspar Brand] 638 639 *) core: Fix segfault in ap_send_interim_response(). PR 52315. 640 [Stefan Fritsch] 641 642 *) mod_log_config: Prevent segfault. PR 50861. [Torsten F�rtsch 643 <torsten.foertsch gmx.net>] 644 645 *) mod_win32: Invert logic for env var UTF-8 fixing. 646 Now we exclude a list of vars which we know for sure they dont hold UTF-8 647 chars; all other vars will be fixed. This has the benefit that now also 648 all vars from 3rd-party modules will be fixed. PR 13029 / 34985. 649 [Guenter Knauf] 650 651 *) core: Fix hook sorting for Perl modules, a regression introduced in 652 2.2.21. PR: 45076. [Torsten Foertsch <torsten foertsch gmx net>] 653 654 *) Fix a regression introduced by the CVE-2011-3192 byterange fix in 2.2.20: 655 A range of '0-' will now return 206 instead of 200. PR 51878. 656 [Jim Jagielski] 657 658 *) Example configuration: Fix entry for MaxRanges (use "unlimited" instead 659 of "0"). [Rainer Jung] 660 661 *) mod_substitute: Fix buffer overrun. [Ruediger Pluem, Rainer Jung] 662 663 Changes with Apache 2.2.21 664 665 *) SECURITY: CVE-2011-3348 (cve.mitre.org) 666 mod_proxy_ajp: Respond with HTTP_NOT_IMPLEMENTED when the method is not 667 recognized. [Jean-Frederic Clere] 668 669 *) Fix a regression introduced by the CVE-2011-3192 byterange fix in 2.2.20. 670 PR 51748. [<lowprio20 gmail.com>] 671 672 *) mod_filter: Instead of dropping the Accept-Ranges header when a filter 673 registered with AP_FILTER_PROTO_NO_BYTERANGE is present, 674 set the header value to "none". [Eric Covener, Ruediger Pluem] 675 676 *) mod_proxy_ajp: Ignore flushing if headers have not been sent. 677 PR 51608 [Ruediger Pluem] 678 679 *) mod_dav_fs: Fix segfault if apr DBM driver cannot be loaded. PR 51751. 680 [Stefan Fritsch] 681 682 *) mod_alias: Adjust log severity of "incomplete redirection target" 683 message. PR 44020. 684 685 *) mod_rewrite: Check validity of each internal (int:) RewriteMap even if the 686 RewriteEngine is disabled in server context, avoiding a crash while 687 referencing the invalid int: map at runtime. PR 50994. 688 [Ben Noordhuis <info noordhuis nl>] 689 690 *) core: Allow MaxRanges none|unlimited|default and set 'Accept-Ranges: none' 691 in the case Ranges are being ignored with MaxRanges none. 692 [Eric Covener] 693 694 *) mod_proxy_ajp: Respect "reuse" flag in END_REPONSE packets. 695 [Rainer Jung] 696 697 Changes with Apache 2.2.20 698 699 *) SECURITY: CVE-2011-3192 (cve.mitre.org) 700 core: Fix handling of byte-range requests to use less memory, to avoid 701 denial of service. If the sum of all ranges in a request is larger than 702 the original file, ignore the ranges and send the complete file. 703 PR 51714. [Stefan Fritsch, Jim Jagielski, Ruediger Pluem, Eric Covener] 704 705 *) mod_authnz_ldap: If the LDAP server returns constraint violation, 706 don't treat this as an error but as "auth denied". [Stefan Fritsch] 707 708 *) mod_filter: Fix FilterProvider conditions of type "resp=" (response 709 headers) for CGI. [Joe Orton, Rainer Jung] 710 711 *) mod_reqtimeout: Fix a timed out connection going into the keep-alive 712 state after a timeout when discarding a request body. PR 51103. 713 [Stefan Fritsch] 714 715 *) core: Do the hook sorting earlier so that the hooks are properly sorted 716 for the pre_config hook and during parsing the config. [Stefan Fritsch] 717 718 Changes with Apache 2.2.19 719 720 *) Revert ABI breakage in 2.2.18 caused by the function signature change 721 of ap_unescape_url_keep2f(). This release restores the signature from 722 2.2.17 and prior, and introduces ap_unescape_url_keep2f_ex(). 723 [Eric Covener] 724 725 Changes with Apache 2.2.18 726 727 *) Log an error for failures to read a chunk-size, and return 408 instead 728 413 when this is due to a read timeout. This change also fixes some cases 729 of two error documents being sent in the response for the same scenario. 730 [Eric Covener] PR49167 731 732 *) core: Only log a 408 if it is no keepalive timeout. PR 39785 733 [Ruediger Pluem, Mark Montague <markmont umich.edu>] 734 735 *) core: Treat timeout reading request as 408 error, not 400. 736 Log 408 errors in access log as was done in Apache 1.3.x. 737 PR 39785 [Nobutaka Mantani <nobutaka nobutaka.org>, Stefan Fritsch, 738 Dan Poirier] 739 740 *) Core HTTP: disable keepalive when the Client has sent 741 Expect: 100-continue 742 but we respond directly with a non-100 response. Keepalive here led 743 to data from clients continuing being treated as a new request. 744 PR 47087. [Nick Kew] 745 746 *) htpasswd: Change the default algorithm for htpasswd to MD5 on all 747 platforms. Crypt with its 8 character limit is not useful anymore; 748 improve out of disk space handling (PR 30877); print a warning if 749 a password is truncated by crypt. [Stefan Fritsch] 750 751 *) mod_win32: Added shebang check for '! so that .vbs scripts work as CGI. 752 Win32's cscript interpreter can only use a single quote as comment char. 753 [Guenter Knauf] 754 755 *) configure: Fix htpasswd/htdbm libcrypt link errors with some newer 756 linkers. [Stefan Fritsch] 757 758 *) MinGW build improvements. PR 49535. [John Vandenberg 759 <jayvdb gmail.com>, Jeff Trawick] 760 761 *) mod_ssl, ab: Support OpenSSL compiled without SSLv2 support. 762 [Stefan Fritsch] 763 764 *) core: AllowEncodedSlashes new option NoDecode to allow encoded slashes 765 in request URL path info but not decode them. PR 35256, 766 PR 46830. [Dan Poirier] 767 768 *) mod_rewrite: Allow to unset environment variables. PR 50746. 769 [Rainer Jung] 770 771 *) suEXEC: Add Suexec directive to disable suEXEC without renaming the 772 binary (Suexec Off), or force startup failure if suEXEC is required 773 but not supported (Suexec On). [Jeff Trawick] 774 775 *) mod_proxy: Put the worker in error state if the SSL handshake with the 776 backend fails. PR 50332. 777 [Daniel Ruggeri <DRuggeri primary.net>, Ruediger Pluem] 778 779 *) prefork: Update MPM state in children during a graceful restart. 780 Allow the HTTP connection handling loop to terminate early 781 during a graceful restart. PR 41743. 782 [Andrew Punch <andrew.punch 247realmedia.com>] 783 784 *) mod_ssl: Correctly read full lines in input filter when the line is 785 incomplete during first read. PR 50481. [Ruediger Pluem] 786 787 *) mod_autoindex: Merge IndexOptions from server to directory context when 788 the directory has no mod_autoindex directives. PR 47766. [Eric Covener] 789 790 *) mod_cache: Make sure that we never allow a 304 Not Modified response 791 that we asked for to leak to the client should the 304 response be 792 uncacheable. PR45341 [Graham Leggett] 793 794 *) mod_dav: Send 400 error if malformed Content-Range header is received for 795 a put request (RFC 2616 14.16). PR 49825. [Stefan Fritsch] 796 797 *) mod_userdir: Add merging of enable, disable, and filename arguments 798 to UserDir directive, leaving enable/disable of userlists unmerged. 799 PR 44076 [Eric Covener] 800 801 *) core: Honor 'AcceptPathInfo OFF' during internal redirects, 802 such as per-directory mod_rewrite substitutions. PR 50349. 803 [Eric Covener] 804 805 *) mod_cache: Check the request to determine whether we are allowed 806 to return cached content at all, and respect a "Cache-Control: 807 no-cache" header from a client. Previously, "no-cache" would 808 behave like "max-age=0". [Graham Leggett] 809 810 *) mod_mem_cache: Add a debug msg when a streaming response exceeds 811 MCacheMaxStreamingBuffer, since mod_cache will follow up with a scary 812 'memory allocation failed' debug message. PR 49604. [Eric Covener] 813 814 *) proxy_connect: Don't give up in the middle of a CONNECT tunnel 815 when the child process is starting to exit. PR50220. [Eric Covener] 816 817 Changes with Apache 2.2.17 818 819 *) prefork MPM: Run cleanups for final request when process exits gracefully 820 to work around a flaw in apr-util. PR 43857. [Tom Donovan] 821 822 *) mod_reqtimeout: Do not wrongly enforce timeouts for mod_proxy's backend 823 connections and other protocol handlers (like mod_ftp). Enforce the 824 timeout for AP_MODE_GETLINE. If there is a timeout, shorten the lingering 825 close time from 30 to 2 seconds. [Stefan Fritsch] 826 827 *) Proxy balancer: support setting error status according to HTTP response 828 code from a backend. PR 48939. [Daniel Ruggeri <DRuggeri primary.net>] 829 830 *) mod_authnz_ldap: If AuthLDAPCharsetConfig is set, also convert the 831 password to UTF-8. PR 45318. 832 [Johannes Müller <joh_m gmx.de>, Stefan Fritsch] 833 834 *) core: check symlink ownership if both FollowSymlinks and 835 SymlinksIfOwnerMatch are set [Nick Kew] 836 837 *) core: fix origin checking in SymlinksIfOwnerMatch 838 PR 36783 [Robert L Mathews <rob-apache.org.bugs tigertech.net>] 839 840 *) mod_headers: Enable multi-match-and-replace edit option 841 PR 46594 [Nick Kew] 842 843 *) mod_log_config: Make ${cookie}C correctly match whole cookie names 844 instead of substrings. PR 28037. [Dan Franklin <dan dan-franklin.com>, 845 Stefan Fritsch] 846 847 *) mod_dir, mod_negotiation: Pass the output filter information 848 to newly created sub requests; as these are later on used 849 as true requests with an internal redirect. This allows for 850 mod_cache et.al. to trap the results of the redirect. 851 PR 17629, 43939 852 [Dirk-Willem van Gulik, Jim Jagielski, Joe Orton, Ruediger Pluem] 853 854 *) rotatelogs: Fix possible buffer overflow if admin configures a 855 mongo log file path. [Jeff Trawick] 856 857 *) mod_ssl: Do not do overlapping memcpy. PR 45444 [Joe Orton] 858 859 *) vhost: A purely-numeric Host: header should not be treated as a port. 860 PR 44979 [Nick Kew] 861 862 *) core: (re)-introduce -T commandline option to suppress documentroot 863 check at startup. 864 PR 41887 [Jan van den Berg <janvdberg gmail.com>] 865 866 Changes with Apache 2.2.16 867 868 *) SECURITY: CVE-2010-1452 (cve.mitre.org) 869 mod_dav, mod_cache: Fix Handling of requests without a path segment. 870 PR: 49246 [Mark Drayton, Jeff Trawick] 871 872 *) SECURITY: CVE-2010-2068 (cve.mitre.org) 873 mod_proxy_ajp, mod_proxy_http, mod_reqtimeout: Fix timeout detection 874 for platforms Windows, Netware and OS2. PR: 49417. [Rainer Jung] 875 876 *) core: Filter init functions are now run strictly once per request 877 before handler invocation. The init functions are no longer run 878 for connection filters. PR 49328. [Joe Orton] 879 880 *) mod_filter: enable it to act on non-200 responses. 881 PR 48377 [Nick Kew] 882 883 *) mod_ldap: LDAP caching was suppressed (and ldap-status handler returns 884 title page only) when any mod_ldap directives were used in VirtualHost 885 context. [Eric Covener] 886 887 *) mod_ssl: Fix segfault at startup if proxy client certs are shared 888 across multiple vhosts. PR 39915. [Joe Orton] 889 890 *) mod_proxy_http: Log the port of the remote server in various messages. 891 PR 48812. [Igor Galić <i galic brainsware org>] 892 893 *) apxs: Fix -A and -a options to ignore whitespace in httpd.conf 894 [Philip M. Gollucci] 895 896 *) mod_dir: add FallbackResource directive, to enable admin to specify 897 an action to happen when a URL maps to no file, without resorting 898 to ErrorDocument or mod_rewrite. PR 47184 [Nick Kew] 899 900 *) mod_rewrite: Allow to set environment variables without explicitly 901 giving a value. [Rainer Jung] 902 903 Changes with Apache 2.2.15 904 905 *) SECURITY: CVE-2009-3555 (cve.mitre.org) 906 mod_ssl: Comprehensive fix of the TLS renegotiation prefix injection 907 attack when compiled against OpenSSL version 0.9.8m or later. Introduces 908 the 'SSLInsecureRenegotiation' directive to reopen this vulnerability 909 and offer unsafe legacy renegotiation with clients which do not yet 910 support the new secure renegotiation protocol, RFC 5746. 911 [Joe Orton, and with thanks to the OpenSSL Team] 912 913 *) SECURITY: CVE-2009-3555 (cve.mitre.org) 914 mod_ssl: A partial fix for the TLS renegotiation prefix injection attack 915 for OpenSSL versions prior to 0.9.8l; reject any client-initiated 916 renegotiations. Forcibly disable keepalive for the connection if there 917 is any buffered data readable. Any configuration which requires 918 renegotiation for per-directory/location access control is still 919 vulnerable, unless using openssl 0.9.8l or later. 920 [Joe Orton, Ruediger Pluem, Hartmut Keil <Hartmut.Keil adnovum.ch>] 921 922 *) SECURITY: CVE-2010-0408 (cve.mitre.org) 923 mod_proxy_ajp: Respond with HTTP_BAD_REQUEST when the body is not sent 924 when request headers indicate a request body is incoming; not a case of 925 HTTP_INTERNAL_SERVER_ERROR. [Niku Toivola <niku.toivola sulake.com>] 926 927 *) SECURITY: CVE-2010-0425 (cve.mitre.org) 928 mod_isapi: Do not unload an isapi .dll module until the request 929 processing is completed, avoiding orphaned callback pointers. 930 [Brett Gervasoni <brettg senseofsecurity.com>, Jeff Trawick] 931 932 *) SECURITY: CVE-2010-0434 (cve.mitre.org) 933 Ensure each subrequest has a shallow copy of headers_in so that the 934 parent request headers are not corrupted. Eliminates a problematic 935 optimization in the case of no request body. PR 48359. 936 [Jake Scott, William Rowe, Ruediger Pluem] 937 938 *) mod_reqtimeout: New module to set timeouts and minimum data rates for 939 receiving requests from the client. [Stefan Fritsch] 940 941 *) mod_proxy_ajp: Really regard the operation a success, when the client 942 aborted the connection. In addition adjust the log message if the client 943 aborted the connection. [Ruediger Pluem] 944 945 *) mod_negotiation: Preserve query string over multiviews negotiation. 946 This buglet was fixed for type maps in 2.2.6, but the same issue 947 affected multiviews and was overlooked. 948 PR 33112. [Joergen Thomsen <apache jth.net>] 949 950 *) mod_cache: Introduce the thundering herd lock, a mechanism to keep 951 the flood of requests at bay that strike a backend webserver as 952 a cached entity goes stale. [Graham Leggett] 953 954 *) mod_proxy_http: Make sure that when an ErrorDocument is served 955 from a reverse proxied URL, that the subrequest respects the status 956 of the original request. This brings the behaviour of proxy_handler 957 in line with default_handler. PR 47106. [Graham Leggett] 958 959 *) mod_log_config: Add the R option to log the handler used within the 960 request. [Christian Folini <christian.folini netnea com>] 961 962 *) mod_include: Allow fine control over the removal of Last-Modified and 963 ETag headers within the INCLUDES filter, making it possible to cache 964 responses if desired. Fix the default value of the SSIAccessEnable 965 directive. [Graham Leggett] 966 967 *) mod_ssl: Fix a potential I/O hang if a long list of trusted CAs 968 is configured for client cert auth. PR 46952. [Joe Orton] 969 970 *) core: Fix potential memory leaks by making sure to not destroy 971 bucket brigades that have been created by earlier filters. 972 [Stefan Fritsch] 973 974 *) mod_authnz_ldap: Add AuthLDAPBindAuthoritative to allow Authentication to 975 try other providers in the case of an LDAP bind failure. 976 PR 46608. [Justin Erenkrantz, Joe Schaefer, Tony Stevenson] 977 978 *) mod_proxy, mod_proxy_http: Support remote https proxies 979 by using HTTP CONNECT. 980 PR 19188. [Philippe Dutrueux <lilas evidian.com>, Rainer Jung] 981 982 *) worker: Don't report server has reached MaxClients until it has. 983 Add message when server gets within MinSpareThreads of MaxClients. 984 PR 46996. [Dan Poirier] 985 986 *) mod_ssl: When extracting certificate subject/issuer names to the 987 SSL_*_DN_* variables, handle RDNs with duplicate tags by 988 exporting multiple varialables with an "_n" integer suffix. 989 PR 45875. [Joe Orton, Peter Sylvester <peter.sylvester edelweb.fr>] 990 991 *) mod_authnz_ldap: Failures to map a username to a DN, or to check a user 992 password now result in an informational level log entry instead of 993 warning level. [Eric Covener] 994 995 *) core: Preserve Port information over internal redirects 996 PR 35999. [Jonas Ringh <jonas.ringh cixit.se>] 997 998 *) mod_filter: fix FilterProvider matching where "dispatch" string 999 doesn't exist. 1000 PR 48054. [<tietew gmail.com>] 1001 1002 *) Build: fix --with-module to work as documented 1003 PR 43881. [Gez Saunders <gez.saunders virgin.net>] 1004 1005 *) mod_mime: Make RemoveType override the info from TypesConfig. 1006 PR 38330. [Stefan Fritsch] 1007 1008 *) mod_proxy: unable to connect to a backend is SERVICE_UNAVAILABLE, 1009 rather than BAD_GATEWAY or (especially) NOT_FOUND. 1010 PR 46971. [Evan Champion <evanc nortel.com>] 1011 1012 *) mod_charset_lite: Honor 'CharsetOptions NoImplicitAdd'. 1013 [Eric Covener] 1014 1015 *) mod_ldap: If LDAPSharedCacheSize is too small, try harder to purge 1016 some cache entries and log a warning. Also increase the default 1017 LDAPSharedCacheSize to 500000. This is a more realistic size suitable 1018 for the default values of 1024 for LdapCacheEntries/LdapOpCacheEntries. 1019 PR 46749. [Stefan Fritsch] 1020 1021 *) mod_disk_cache, mod_mem_cache: don't cache incomplete responses, 1022 per RFC 2616, 13.8. PR15866. [Dan Poirier] 1023 1024 *) mod_rewrite: Make sure that a hostname:port isn't fully qualified if 1025 the request is a CONNECT request. PR 47928. 1026 [Bill Zajac <billz consultla.com>] 1027 1028 *) mod_cache: correctly consider s-maxage in cacheability 1029 decisions. [Dan Poirier] 1030 1031 *) core: Return APR_EOF if request body is shorter than the length announced 1032 by the client. PR 33098. [Stefan Fritsch] 1033 1034 *) mod_rewrite: Add scgi scheme detection. [André Malo] 1035 1036 *) mod_mime: Detect invalid use of MultiviewsMatch inside Location and 1037 LocationMatch sections. PR 47754. [Dan Poirier] 1038 1039 *) ab, mod_ssl: Restore compatibility with OpenSSL < 0.9.7g. 1040 [Guenter Knauf] 1041 1042 Changes with Apache 2.2.14 1043 1044 *) SECURITY: CVE-2009-2699 (cve.mitre.org) 1045 Fixed in APR 1.3.9. Faulty error handling in the Solaris pollset support 1046 (Event Port backend) which could trigger hangs in the prefork and event 1047 MPMs on that platform. PR 47645. [Jeff Trawick] 1048 1049 *) SECURITY: CVE-2009-3095 (cve.mitre.org) 1050 mod_proxy_ftp: sanity check authn credentials. 1051 [Stefan Fritsch <sf fritsch.de>, Joe Orton] 1052 1053 *) SECURITY: CVE-2009-3094 (cve.mitre.org) 1054 mod_proxy_ftp: NULL pointer dereference on error paths. 1055 [Stefan Fritsch <sf fritsch.de>, Joe Orton] 1056 1057 *) mod_proxy_scgi: Backport from trunk. [André Malo] 1058 1059 *) mod_ldap: Don't try to resolve file-based user ids to a DN when AuthLDAPURL 1060 has been defined at a very high level. PR 45946. [Eric Covener] 1061 1062 *) htcacheclean: 19 ways to fail, 1 error message. Fixed. [Graham Leggett] 1063 1064 *) mod_ldap: Bring the LDAPCacheEntries and LDAPOpCacheEntries 1065 usage() in synch with the manual and the implementation (0 and -1 1066 both disable the cache). [Eric Covener] 1067 1068 *) mod_ssl: The error message when SSLCertificateFile is missing should 1069 at least give the name or position of the problematic virtual host 1070 definition. [Stefan Fritsch sf sfritsch.de] 1071 1072 *) htdbm: Fix possible buffer overflow if dbm database has very 1073 long values. PR 30586 [Dan Poirier] 1074 1075 *) Add support for HTTP PUT to ab. [Jeff Barnes <jbarnesweb yahoo.com>] 1076 1077 *) mod_ssl: Fix SSL_*_DN_UID variables to use the 'userID' attribute 1078 type. PR 45107. [Michael Ströder <michael stroeder.com>, 1079 Peter Sylvester <peter.sylvester edelweb.fr>] 1080 1081 *) mod_cache: Add CacheIgnoreURLSessionIdentifiers directive to ignore 1082 defined session identifiers encoded in the URL when caching. 1083 [Ruediger Pluem] 1084 1085 *) mod_mem_cache: fix seg fault under load due to pool concurrency problem 1086 PR: 47672 [Dan Poirier <poirier pobox.com>] 1087 1088 *) mod_autoindex: Correctly create an empty cell if the description 1089 for a file is missing. PR 47682 [Peter Poeml <poeml suse.de>] 1090 1091 Changes with Apache 2.2.13 1092 1093 *) SECURITY: CVE-2009-2412 (cve.mitre.org) 1094 Distributed with APR 1.3.8 and APR-util 1.3.9 to fix potential overflow 1095 in pools and rmm, where size alignment was taking place. 1096 [Matt Lewis <mattlewis@google.com>, Sander Striker] 1097 1098 *) mod_ssl, ab: improve compatibility with OpenSSL 1.0.0 betas. Report 1099 warnings compiling mod_ssl against OpenSSL to the httpd developers. 1100 [Guenter Knauf] 1101 1102 *) mod_cgid: Do not add an empty argument when calling the CGI script. 1103 PR 46380 [Ruediger Pluem] 1104 1105 *) Fix potential segfaults with use of the legacy ap_rputs() etc 1106 interfaces, in cases where an output filter fails. PR 36780. 1107 [Joe Orton] 1108 1109 Changes with Apache 2.2.12 1110 1111 *) SECURITY: CVE-2009-1891 (cve.mitre.org) 1112 Fix a potential Denial-of-Service attack against mod_deflate or other 1113 modules, by forcing the server to consume CPU time in compressing a 1114 large file after a client disconnects. PR 39605. 1115 [Joe Orton, Ruediger Pluem] 1116 1117 *) SECURITY: CVE-2009-1195 (cve.mitre.org) 1118 Prevent the "Includes" Option from being enabled in an .htaccess 1119 file if the AllowOverride restrictions do not permit it. 1120 [Jonathan Peatfield <j.s.peatfield damtp.cam.ac.uk>, Joe Orton, 1121 Ruediger Pluem, Jeff Trawick] 1122 1123 *) SECURITY: CVE-2009-1890 (cve.mitre.org) 1124 Fix a potential Denial-of-Service attack against mod_proxy in a 1125 reverse proxy configuration, where a remote attacker can force a 1126 proxy process to consume CPU time indefinitely. [Nick Kew, Joe Orton] 1127 1128 *) SECURITY: CVE-2009-1191 (cve.mitre.org) 1129 mod_proxy_ajp: Avoid delivering content from a previous request which 1130 failed to send a request body. PR 46949 [Ruediger Pluem] 1131 1132 *) SECURITY: CVE-2009-0023, CVE-2009-1955, CVE-2009-1956 (cve.mitre.org) 1133 The bundled copy of the APR-util library has been updated, fixing three 1134 different security issues which may affect particular configurations 1135 and third-party modules. 1136 1137 *) mod_headers: Make 'Header set Content-Type' effective on responses 1138 that already have a Content-Type. [Issac Goldstand] 1139 1140 *) mod_include: fix potential segfault when handling back references 1141 on an empty SSI variable. [Ruediger Pluem, Lars Eilebrecht, Nick Kew] 1142 1143 *) mod_alias: check sanity in Redirect arguments. 1144 PR 44729 [Sönke Tesch <st kino-fahrplan.de>, Jim Jagielski] 1145 1146 *) mod_proxy_http: fix Host: header for literal IPv6 addresses. 1147 PR 47177 [Carlos Garcia Braschi <cgbraschi gmail.com>] 1148 1149 *) mod_rewrite: Remove locking for writing to the rewritelog. 1150 PR 46942 1151 1152 *) mod_alias: Ensure Redirect emits HTTP-compliant URLs. 1153 PR 44020 1154 1155 *) mod_proxy_http: fix case sensitivity checking transfer encoding 1156 PR 47383 [Ryuzo Yamamoto <ryuzo.yamamoto gmail.com>] 1157 1158 *) mod_rewrite: Fix the error string returned by RewriteRule. 1159 RewriteRule returned "RewriteCond: bad flag delimiters" when the 3rd 1160 argument of RewriteRule was not started with "[" or not ended with "]". 1161 PR 45082 [Vitaly Polonetsky <m_vitaly topixoft.com>] 1162 1163 *) mod_proxy: Complete ProxyPassReverse to handle balancer URL's. Given; 1164 BalancerMember balancer://alias http://example.com/foo 1165 ProxyPassReverse /bash balancer://alias/bar 1166 backend url http://example.com/foo/bar/that is now translated /bash/that 1167 [William Rowe] 1168 1169 *) New piped log syntax: Use "||process args" to launch the given process 1170 without invoking the shell/command interpreter. Use "|$command line" 1171 (the default behavior of "|command line" in 2.2) to invoke using shell, 1172 consuming an additional shell process for the lifetime of the logging 1173 pipe program but granting additional process invocation flexibility. 1174 [William Rowe] 1175 1176 *) mod_ssl: Add server name indication support (RFC 4366) and better 1177 support for name based virtual hosts with SSL. PR 34607 1178 [Peter Sylvester <peter.sylvester edelweb.fr>, 1179 Kaspar Brand <asfbugz velox.ch>, Guenter Knauf, Joe Orton, 1180 Ruediger Pluem] 1181 1182 *) mod_negotiation: Escape pathes of filenames in 406 responses to avoid 1183 HTML injections and HTTP response splitting. PR 46837. 1184 [Geoff Keating <geoffk apple.com>] 1185 1186 *) mod_include: Prevent a case of SSI timefmt-smashing with filter chains 1187 including multiple INCLUDES filters. PR 39369 [Joe Orton] 1188 1189 *) mod_rewrite: When evaluating a proxy rule in directory context, do 1190 escape the filename by default. PR 46428 [Joe Orton] 1191 1192 *) mod_proxy_ajp: Check more strictly that the backend follows the AJP 1193 protocol. [Mladen Turk] 1194 1195 *) mod_ssl: Add SSLProxyCheckPeerExpire and SSLProxyCheckPeerCN directives 1196 to enable stricter checking of remote server certificates. 1197 [Ruediger Pluem] 1198 1199 *) mod_substitute: Fix a memory leak. PR 44948 1200 [Dan Poirier <poirier pobox.com>] 1201 1202 *) mod_proxy_ajp: Forward remote port information by default. 1203 [Rainer Jung] 1204 1205 *) mod_disk_cache/mod_mem_cache: Fix handling of CacheIgnoreHeaders 1206 directive to correctly remove headers before storing them. 1207 [Lars Eilebrecht] 1208 1209 *) mod_deflate: revert changes in 2.2.8 that caused an invalid 1210 etag to be emitted for on-the-fly gzip content-encoding. 1211 PR 39727 will require larger fixes and this fix was far more 1212 harmful than the original code. PR 45023. [Roy T. Fielding] 1213 1214 *) mod_disk_cache: The module now turns off sendfile support if 1215 'EnableSendfile off' is defined globally. PR 41218. 1216 [Lars Eilebrecht, Issac Goldstand] 1217 1218 *) prefork: Fix child process hang during graceful restart/stop in 1219 configurations with multiple listening sockets. PR 42829. [Joe Orton, 1220 Jeff Trawick] 1221 1222 *) mod_ssl: Add SSLRenegBufferSize directive to allow changing the 1223 size of the buffer used for the request-body where necessary 1224 during a per-dir renegotiation. PR 39243. [Joe Orton] 1225 1226 *) mod_rewrite: Introduce DiscardPathInfo|DPI flag to stop the troublesome 1227 way that per-directory rewrites append the previous notion of PATH_INFO 1228 to each substitution before evaluating subsequent rules. 1229 PR38642 [Eric Covener] 1230 1231 *) mod_authnz_ldap: Reduce number of initialization debug messages and make 1232 information more clear. PR 46342 [Dan Poirier] 1233 1234 *) mod_cache: Introduce 'no-cache' per-request environment variable 1235 to prevent the saving of an otherwise cacheable response. 1236 [Eric Covener] 1237 1238 *) core: Translate the status line to ASCII on EBCDIC platforms in 1239 ap_send_interim_response() and for locally generated "100 Continue" 1240 responses. [Eric Covener] 1241 1242 *) CGI: return 504 (Gateway timeout) rather than 500 when a script 1243 times out before returning status line/headers. 1244 PR 42190 [Nick Kew] 1245 1246 *) prefork: Log an error instead of segfaulting when child startup fails 1247 due to pollset creation failures. PR 46467. [Jeff Trawick] 1248 1249 *) mod_ext_filter: fix error handling when the filter prog fails to start, 1250 and introduce an onfail configuration option to abort the request 1251 or to remove the broken filter and continue. 1252 PR 41120 [Nick Kew] 1253 1254 *) mod_include: support generating non-ASCII characters as entities in SSI 1255 PR 25202 [Nick Kew] 1256 1257 *) core/utils: Enhance ap_escape_html API to support escaping non-ASCII 1258 chars [Nick Kew] 1259 1260 *) mod_rewrite: fix "B" flag breakage by reverting r589343 1261 PR 45529 [Bob Ionescu <bobsiegen googlemail.com>] 1262 1263 *) mod_cgid: fix segfault problem on solaris. 1264 PR 39332 [Masaoki Kobayashi <masaoki techfirm.co.jp>, Jeff Trawick] 1265 1266 *) mod_ldap: Avoid a segfault when result->rc is checked in 1267 uldap_connection_init when result is NULL. This could happen if LDAP 1268 initialization failed. PR 45994. [Dan Poirier <poirier pobox.com>] 1269 1270 *) Set Listen protocol to "https" if port is set to 443 and no proto is 1271 specified (as documented but not implemented). PR 46066 1272 [Dan Poirier <poirier pobox.com>] 1273 1274 *) mod_cache: Correctly save Content-Encoding of cachable entity. PR 46401 1275 [Dan Poirier <poirier pobox.com>] 1276 1277 *) Output -M and -S dumps (modules and vhosts) to stdout instead of stderr. 1278 PR 42571 and PR 44266 (dup). [Dan Poirier <poirier pobox.com>] 1279 1280 *) mod_cache: When an explicit Expires or Cache-Control header is set, cache 1281 normally non-cacheable response statuses. PR 46346. 1282 [Alex Polvi <alex polvi.net>] 1283 1284 Changes with Apache 2.2.11 1285 1286 *) core: When the ap_http_header_filter processes an error bucket, cleanup 1287 the passed brigade before returning AP_FILTER_ERROR down the filter 1288 chain. This unambiguously ensures the same error bucket isn't revisited 1289 [Ruediger Pluem] 1290 1291 *) core: Error responses set by filters were being coerced into 500 errors, 1292 sometimes appended to the original error response. Log entry of: 1293 'Handler for (null) returned invalid result code -3' 1294 [Eric Covener] 1295 1296 *) configure: Don't reject libtool 2.x 1297 PR 44817 [Arfrever Frehtes Taifersar Arahesis <Arfrever.FTA gmail.com>] 1298 1299 *) mod_autoindex: add configuration option to insert string 1300 in HTML HEAD (IndexHeadInsert). [Nick Kew] 1301 1302 *) Add new LogFormat parameter, %k, which logs the number of 1303 keepalive requests on this connection for this request. 1304 PR 45762 [Dan Poirier <poirier pobox.com>, Jim Jagielski] 1305 1306 *) Export and install the mod_rewrite.h header to ensure the optional 1307 rewrite_mapfunc_t and ap_register_rewrite_mapfunc functions are 1308 available to third party modules. [Graham Leggett] 1309 1310 *) mod_cache: Convert age of cached object to seconds before comparing it to 1311 age supplied by the request when checking whether to send a Warning 1312 header for a stale response. PR 39713. [Owen Taylor <otaylor redhat.com>] 1313 1314 *) Build: Correctly set SSL_LIBS during openssl detection if pkgconfig is 1315 not available. PR 46018 [Ruediger Pluem] 1316 1317 *) mod_proxy_ajp: Do not fail if response data is sent before all request 1318 data is read. PR 45911 [Ruediger Pluem] 1319 1320 *) mod_proxy_balancer: Add in forced recovery for balancer members if 1321 all are in error state. [Mladen Turk] 1322 1323 *) mod_proxy: Prevent segmentation faults by correctly adjusting the 1324 lifetime of the buckets read from the proxy backend. PR 45792 1325 [Ruediger Pluem] 1326 1327 *) mod_expires: Do not sets negative max-age / Expires header in the past. 1328 PR 39774 [Jim Jagielski] 1329 1330 *) mod_info: Was displaying the wrong value for the KeepAliveTimeout 1331 value. [Jim Jagielski] 1332 1333 *) mod_proxy_ajp: Fix wrongly formatted requests where client 1334 sets Content-Length header, but doesn't provide a body. 1335 Servlet container always expects that next packet is 1336 body whenever C-L is present in the headers. This can lead 1337 to wrong interpretation of the packets. In this case 1338 send the empty body packet, so container can deal with 1339 that. [Mladen Turk] 1340 1341 *) core: Add ap_timeout_parameter_parse to public API. [Ruediger Pluem] 1342 1343 *) mod_proxy: Add the possibility to set the worker parameters 1344 connectiontimeout and ping in milliseconds. [Ruediger Pluem] 1345 1346 *) Worker MPM: Crosscheck that idle workers are still available before using 1347 them and thus preventing an overflow of the worker queue which causes 1348 a SegFault. PR 45605 [Denis Ustimenko <denusk gmail.com>] 1349 1350 *) Windows: Always build the odbc dbd driver on windows, to be consistent 1351 with the apr-util default. [Tom Donovan] 1352 1353 Changes with Apache 2.2.10 1354 1355 *) SECURITY: CVE-2008-2939 (cve.mitre.org) 1356 mod_proxy_ftp: Prevent XSS attacks when using wildcards in the path of 1357 the FTP URL. Discovered by Marc Bevand of Rapid7. [Ruediger Pluem] 1358 1359 *) mod_authz_host: Add support for env=!envvar [Jim Jagielski] 1360 1361 *) Allow for smax to be 0 for balancer members so that all idle 1362 connections are able to be dropped should they exceed ttl. 1363 PR 43371 [Phil Endecott <spam_from_apache_bugzilla chezphil.org>, 1364 Jim Jagielski] 1365 1366 *) mod_proxy_http: Don't trigger a retry by the client if a failure to 1367 read the response line was the result of a timeout. 1368 [Adam Woodworth <mirkperl gmail.com>] 1369 1370 *) Support chroot on Unix-family platforms 1371 PR 43596 [Dimitar Pashev <mitko banksoft-bg.com>] 1372 1373 *) mod_ssl: implement dynamic mutex callbacks for the benefit of 1374 OpenSSL. [Sander Temme] 1375 1376 *) mod_proxy_balancer: Add 'bybusyness' load balance method. 1377 [Joel Gluth <joelgluth yahoo.com.au>, Jim Jagielski] 1378 1379 *) mod_authn_alias: Detect during startup when AuthDigestProvider 1380 is configured to use an incompatible provider via AuthnProviderAlias. 1381 PR 45196 [Eric Covener] 1382 1383 *) mod_proxy: Add 'scolonpathdelim' parameter to allow for ';' to also be 1384 used as a session path separator/delim PR 45158. [Jim Jagielski] 1385 1386 *) mod_charset_lite: Avoid dropping error responses by handling meta buckets 1387 correctly. PR 45687 [Dan Poirier <poirier pobox.com>] 1388 1389 *) mod_proxy_http: Introduce environment variable proxy-initial-not-pooled 1390 to avoid reusing pooled connections if the client connection is an 1391 initial connection. PR 37770. [Ruediger Pluem] 1392 1393 *) mod_rewrite: Allow Cookie option to set secure and HttpOnly flags. 1394 PR 44799 [Christian Wenz <christian wenz.org>] 1395 1396 *) mod_ssl: Rewrite shmcb to avoid memory alignment issues. PR 42101. 1397 [Geoff Thorpe] 1398 1399 *) mod_proxy: Add connectiontimeout parameter for proxy workers in order to 1400 be able to set the timeout for connecting to the backend separately. 1401 PR 45445. [Ruediger Pluem, rahul <rahul sun.com>] 1402 1403 *) mod_dav_fs: Retrieve minimal system information about directory 1404 entries when walking a DAV fs, resolving a performance degradation on 1405 Windows. PR 45464. [Joe Orton, Jeff Trawick] 1406 1407 *) mod_cgid: Pass along empty command line arguments from an ISINDEX 1408 query that has consecutive '+' characters in the QUERY_STRING, 1409 matching the behavior of mod_cgi. 1410 [Eric Covener] 1411 1412 *) mod_headers: Prevent Header edit from processing only the first header 1413 of possibly multiple headers with the same name and deleting the 1414 remaining ones. PR 45333. [Ruediger Pluem] 1415 1416 *) mod_proxy_balancer: Move nonce field in the balancer manager page inside 1417 the html form where it belongs. PR 45578. [Ruediger Pluem] 1418 1419 *) mod_proxy_http: Do not forward requests with 'Expect: 100-continue' to 1420 known HTTP/1.0 servers. Return 'Expectation failed' (417) instead. 1421 [Ruediger Pluem] 1422 1423 *) mod_rewrite: Preserve the query string when [proxy,noescape]. PR 45247. 1424 [Tom Donovan] 1425 1426 Changes with Apache 2.2.9 1427 1428 *) SECURITY: CVE-2008-2364 (cve.mitre.org) 1429 mod_proxy_http: Better handling of excessive interim responses 1430 from origin server to prevent potential denial of service and high 1431 memory usage. Reported by Ryujiro Shibuya. [Ruediger Pluem, 1432 Joe Orton, Jim Jagielski] 1433 1434 *) SECURITY: CVE-2007-6420 (cve.mitre.org) 1435 mod_proxy_balancer: Prevent CSRF attacks against the balancer-manager 1436 interface. [Joe Orton] 1437 1438 *) core: Fix address-in-use startup failure on some platforms caused 1439 by creating an IPv4 listener which overlaps with an existing IPv6 1440 listener. [Jeff Trawick] 1441 1442 *) mod_proxy: Make all proxy modules nocanon aware and do not add the 1443 query string again in this case. PR 44803. 1444 [Jim Jagielski, Ruediger Pluem] 1445 1446 *) mod_unique_id: Fix timestamp value in UNIQUE_ID. 1447 PR 37064 [Kobayashi <kobayashi firstserver.co.jp>] 1448 1449 *) htpasswd: Fix salt generation weakness. PR 31440 1450 [Andreas Krennmair <ak synflood.at>, Peter Watkins <peterw tux.org>, 1451 Paul Querna] 1452 1453 *) core: Add the filename of the configuration file to the warning message 1454 about the useless use of AllowOverride. PR 39992. 1455 [Darryl Miles <darryl darrylmiles.org>] 1456 1457 *) scoreboard: Remove unused proxy load balancer elements from scoreboard 1458 image (not scoreboard memory itself). [Chris Darroch] 1459 1460 *) mod_proxy: Support environment variable interpolation in reverse 1461 proxying directives. [Nick Kew] 1462 1463 *) suexec: When group is given as a numeric gid, validate it by looking up 1464 the actual group name such that the name can be used in log entries. 1465 PR 7862 [<y-koga apache.or.jp>, Leif W <warp-9.9 usa.net>] 1466 1467 *) Fix garbled TRACE response on EBCDIC platforms. 1468 [David Jones <oscaremma gmail.com>] 1469 1470 *) ab: Include <limits.h> earlier if available since we may need 1471 INT_MAX (defined there on Windows) for the definition of MAX_REQUESTS. 1472 PR 45024 [Ruediger Pluem] 1473 1474 *) ab: Improve client performance by clearing connection pool instead 1475 of destroying it. PR 40054 [Brad Roberts <braddr puremagic.com>] 1476 1477 *) ab: Don't stop sending a request if EAGAIN is returned, which 1478 will only happen if both the write and subsequent wait are 1479 returning EAGAIN, and count posted bytes correctly when the initial 1480 write of a request is not complete. PR 10038, 38861, 39679 1481 [Patrick McManus <mcmanus datapower.com>, 1482 Stefan Fleiter <stefan.fleiter web.de>, 1483 Davanum Srinivas, Roy T. Fielding] 1484 1485 *) ab: Overhaul stats collection and reporting to avoid integer 1486 truncation and time divisions within the test loop, retain 1487 native time resolution until output, remove unused data, 1488 consistently round milliseconds, and generally avoid losing 1489 accuracy of calculation due to type casts. PR 44878, 44931. 1490 [Roy T. Fielding] 1491 1492 *) ab: Add -r option to continue after socket receive errors. 1493 [Filip Hanik <devlist hanik.com>] 1494 1495 *) core: Do not allow Options ALL if not all options are allowed to be 1496 overwritten. PR 44262 [Michał Grzędzicki <lazy iq.pl>] 1497 1498 *) mod_cache: Handle If-Range correctly if the cached resource was stale. 1499 PR 44579 [Ruediger Pluem] 1500 1501 *) mod_proxy: Do not try a direct connection if the connection via a 1502 remote proxy failed before and the request has a request body. 1503 [Ruediger Pluem] 1504 1505 *) mod_proxy_ajp: Do not retry request in the case that we either failed to 1506 sent a part of the request body or if the request is not idempotent. 1507 PR 44334 [Ruediger Pluem] 1508 1509 *) mod_rewrite: Initialize hash needed by ap_register_rewrite_mapfunc early 1510 enough. PR 44641 [Daniel Lescohier <daniel.lescohier cnet.com>] 1511 1512 *) mod_dav: Return "method not allowed" if the destination URI of a WebDAV 1513 copy / move operation is no DAV resource. PR 44734 [Ruediger Pluem] 1514 1515 *) http_filters: Don't return 100-continue on redirects. PR 43711 1516 [Ruediger Pluem] 1517 1518 *) mod_ssl: Fix a memory leak with connections that have zlib compression 1519 turned on. PR 44975 [Joe Orton, Amund Elstad <Amund.Elstad ist.com>, 1520 Dr Stephen Henson <steve openssl.org>] 1521 1522 *) mod_proxy: Trigger a retry by the client in the case we fail to read the 1523 response line from the backend by closing the connection to the client. 1524 PR 37770 [Ruediger Pluem] 1525 1526 *) gen_test_char: add double-quote to the list of T_HTTP_TOKEN_STOP. 1527 PR 9727 [Ville Skytt <ville.skytta iki.fi>] 1528 1529 *) core: reinstate location walk to fix config for subrequests 1530 PR 41960 [Jose Kahan <jose w3.org>] 1531 1532 *) rotatelogs: Log the current file size and error code/description 1533 when failing to write to the log file. [Jeff Trawick] 1534 1535 *) rotatelogs: Added '-f' option to force rotatelogs to create the 1536 logfile as soon as started, and not wait until it reads the 1537 first entry. [Jim Jagielski] 1538 1539 *) rotatelogs: Don't leak memory when reopening the logfile. 1540 PR 40183 [Ruediger Pluem, Takashi Sato <serai lans-tv.com>] 1541 1542 *) rotatelogs: Improve atomicity when using -l and cleaup code. 1543 PR 44004 [Rainer Jung] 1544 1545 *) mod_authn_dbd: Disambiguate and tidy database authentication 1546 error messages. PR 43210. [Chris Darroch, Phil Endecott 1547 <spam_from_apache_bugzilla chezphil.org>] 1548 1549 *) mod_headers: Add 'merge' option to avoid duplicate values within 1550 the same header. [Chris Darroch] 1551 1552 *) mod_cgid: Explicitly set permissions of the socket (ScriptSock) shared by 1553 mod_cgid and request processing threads, for OS'es such as HPUX and AIX 1554 that do not use umask for AF_UNIX socket permissions. 1555 [Eric Covener, Jeff Trawick] 1556 1557 *) mod_cgid: Don't try to restart the daemon if it fails to initialize 1558 the socket. [Jeff Trawick] 1559 1560 *) mod_log_config: Add format options for %p so that the actual local 1561 or remote port can be logged. PR 43415. [Adam Hasselbalch Hansen 1562 <ahh@one.com>, Ruediger Pluem, Jeff Trawick] 1563 1564 *) Added 'disablereuse' option for ProxyPass which, essentially, 1565 disables connection pooling for the backend servers. 1566 [Jim Jagielski] 1567 1568 *) mod_speling: remove regression from 1.3/2.0 behavior and 1569 drop dependency between mod_speling and AcceptPathInfo. 1570 PR 43562 [Jose Kahan <jose w3.org>] 1571 1572 *) mod_substitute: The default is now flattening the buckets after 1573 each substitution. The newly added 'q' flag allows for the 1574 quicker, more efficient bucket-splitting if the user so 1575 desires. [Jim Jagielski] 1576 1577 *) http_filters: Don't spin if get an error when reading the 1578 next chunk. PR 44381 [Ruediger Pluem] 1579 1580 *) ab: Do not try to read non existing response bodies of HEAD requests. 1581 PR 34275 [Takashi Sato <serai lans-tv.com>] 1582 1583 *) ab: Use a 64 bit unsigned int instead of a signed long to count the 1584 bytes transferred to avoid integer overflows. PR 44346 [Ruediger Pluem] 1585 1586 *) ProxyPassReverse is now balancer aware. [Jim Jagielski] 1587 1588 *) mod_include: Correctly handle SSI directives split over multiple filter 1589 passes. PR 44447 [Harald Niesche <harald brokenerror.de>] 1590 1591 *) mod_cache: Revalidate cache entities which have Cache-Control: no-cache 1592 set in their response headers. PR 44511 [Ruediger Pluem] 1593 1594 *) mod_rewrite: Check all files used by DBM maps for freshness, mod_rewrite 1595 didn't pick up on updated sdbm maps due to this. 1596 PR41190 [Niklas Edmundsson] 1597 1598 *) mod_proxy: Lower memory consumption for short lived connections. 1599 PR 44026. [Ruediger Pluem] 1600 1601 *) mod_proxy: Keep connections to the backend persistent in the HTTPS case. 1602 [Ruediger Pluem] 1603 1604 *) Don't add bogus duplicate Content-Language entries 1605 PR 11035 [Davi Arnaut] 1606 1607 *) Worker / Event MPM: Fix race condition in pool recycling that leads to 1608 segmentation faults under load. PR 44402 1609 [Basant Kumar Kukreja <basant.kukreja sun.com>] 1610 1611 *) mod_proxy_ftp: Fix base for directory listings. 1612 PR 27834 [Nick Kew] 1613 1614 *) mod_logio: Provide optional function to allow modules to adjust the 1615 bytes_in count [Eric Covener] 1616 1617 *) http_filters: Don't return 100-continue on client error 1618 PR 43711 [Chetan Reddy <chetanreddy gmail.com>] 1619 1620 *) mod_charset_lite: Add TranslateAllMimeTypes sub-option to 1621 CharsetOptions, allowing the administrator to skip the 1622 mimetype checking that precedes translation. 1623 PR 44458 [Eric Covener] 1624 1625 *) mod_proxy_http: Fix processing of chunked responses if 1626 Connection: Transfer-Encoding is set in the response of the proxied 1627 system. PR 44311 [Ruediger Pluem] 1628 1629 *) mod_proxy_http: Return HTTP status codes instead of apr_status_t 1630 values for errors encountered while forwarding the request body 1631 PR 44165 [Eric Covener] 1632 1633 *) mod_rewrite: Don't canonicalise URLs with [P,NE] 1634 PR 43319 [<rahul sun.com>] 1635 1636 Changes with Apache 2.2.8 1637 1638 *) core: Fix regression in 2.2.7 in chunk filtering with massively 1639 chunked requests. [Ruediger Pluem, Nick Kew] 1640 1641 *) winnt_mpm: Resolve modperl issues by redirecting console mode stdout 1642 to /Device/Nul as the server is starting up, mirroring unix MPM's. 1643 PR: 43534 [Tom Donovan <Tom.Donovan acm.org>, William Rowe] 1644 1645 *) winnt_mpm: Restore Win32DisableAcceptEx On directive and Win9x platform 1646 by recreating the bucket allocator each time the trans pool is cleared. 1647 PR: 11427 #16 (follow-on) [Tom Donovan <Tom.Donovan acm.org>] 1648 1649 *) mod_dav: Fix evaluation of If-Match * and If-None-Match * conditionals. 1650 PR 38034 [Paritosh Shah <shah.paritosh gmail.com>] 1651 1652 Changes with Apache 2.2.7 (not released) 1653 1654 *) SECURITY: CVE-2007-6421 (cve.mitre.org) 1655 mod_proxy_balancer: Correctly escape the worker route and the worker 1656 redirect string in the HTML output of the balancer manager. 1657 Reported by SecurityReason. [Ruediger Pluem] 1658 1659 *) SECURITY: CVE-2007-6422 (cve.mitre.org) 1660 Prevent crash in balancer manager if invalid balancer name is passed 1661 as parameter. Reported by SecurityReason. [Ruediger Pluem] 1662 1663 *) SECURITY: CVE-2007-6388 (cve.mitre.org) 1664 mod_status: Ensure refresh parameter is numeric to prevent 1665 a possible XSS attack caused by redirecting to other URLs. 1666 Reported by SecurityReason. [Mark Cox, Joe Orton] 1667 1668 *) SECURITY: CVE-2007-5000 (cve.mitre.org) 1669 mod_imagemap: Fix a cross-site scripting issue. Reported by JPCERT. 1670 [Joe Orton] 1671 1672 *) SECURITY: CVE-2008-0005 (cve.mitre.org) 1673 Introduce the ProxyFtpDirCharset directive, allowing the administrator 1674 to identify a default, or specific servers or paths which list their 1675 contents in other-than ISO-8859-1 charset (e.g. utf-8). [Ruediger Pluem] 1676 1677 *) mod_dav: Adjust etag generation to produce identical results on 32-bit 1678 and 64-bit platforms and avoid a regression with conditional PUT's on 1679 lock and etag. PR 44152. 1680 [Michael Clark <michael metaparadigm.com>, Ruediger Pluem] 1681 1682 *) mod_ssl: Fix handling of the buffered request body during a per-location 1683 renegotiation, when an internal redirect occurs. PR 43738. 1684 [Joe Orton] 1685 1686 *) mod_ldap: Try to establish a new backend LDAP connection when the 1687 Microsoft LDAP client library returns LDAP_UNAVAILABLE, e.g. after the 1688 LDAP server has closed the connection due to a timeout. 1689 PR 39095 [Eric Covener] 1690 1691 *) log.c: Ensure Win32 resurrects its lost robust logger processes. 1692 [William Rowe] 1693 1694 *) mod_disk_cache: Delete temporary files if they cannot be renamed to their 1695 final name. [Davi Arnaut <davi haxent.com.br>] 1696 1697 *) Add explicit charset to the output of various modules to work around 1698 possible cross-site scripting flaws affecting web browsers that do not 1699 derive the response character set as required by RFC2616. One of these 1700 reported by SecurityReason [Joe Orton] 1701 1702 *) http_protocol: Escape request method in 405 error reporting. 1703 This has no security impact since the browser cannot be tricked 1704 into sending arbitrary method strings. [Jeff Trawick] 1705 1706 *) mod_ssl: Fix SSL client certificate extensions parsing bug. PR 44073. 1707 [yl <yl bee-ware.net>] 1708 1709 *) mod_proxy_ajp: Use 64K as maximum AJP packet size. This is the maximum 1710 length we can squeeze inside the AJP message packet. 1711 [Mladen Turk] 1712 1713 *) core: Lower memory consumption of ap_r* functions by reusing the brigade 1714 instead of recreating it during each filter pass. 1715 [Stefan Fritsch <sf sfritsch.de>] 1716 1717 *) core: Lower memory consumption in case that flush buckets are passed thru 1718 the chunk filter as last bucket of a brigade. PR 23567. 1719 [Stefan Fritsch <sf sfritsch.de>] 1720 1721 *) core: Fix broken chunk filtering that causes all non blocking reads to be 1722 converted into blocking reads. PR 19954, 41056. 1723 [Jean-Frederic Clere, Jim Jagielski] 1724 1725 *) mod_rewrite: Add the novary flag to RewriteCond. 1726 [Ruediger Pluem] 1727 1728 *) core: Change etag generation to produce identical results on 1729 32-bit and 64-bit platforms. PR 40064. [Joe Orton] 1730 1731 *) http_protocol: Escape request method in 413 error reporting. 1732 Determined to be not generally exploitable, but a flaw in any case. 1733 PR 44014 [Victor Stinner <victor.stinner inl.fr>] 1734 1735 *) mod_filter: Don't segfault on (unsupported) chained FilterProvider usage. 1736 PR 43956 [Nick Kew, Ruediger Pluem] 1737 1738 *) core: Handle unrecognised transfer-encodings. 1739 PR 43882 [Nick Kew, Jeff Trawick] 1740 1741 *) mod_include: Add an "if" directive syntax to test whether an URL 1742 is accessible, and if so, conditionally display content. This 1743 allows a webmaster to hide a link to a private page when the user 1744 has no access to that page. [Graham Leggett] 1745 1746 *) Various code cleanups. PR 38699, 39518, 42005, 42006, 42007, 42008, 42009 1747 [Christophe Jaillet <christophe.jaillet wanadoo.fr>] 1748 1749 *) mod_proxy_http: Correctly forward unexpected interim (HTTP 1xx) 1750 responses from the backend according to RFC2616. But make it 1751 configurable in case something breaks on it. 1752 PR 16518 [Nick Kew] 1753 1754 *) mod_substitute: Added a new output filter, which performs 1755 inline response content pattern matching (including regex) 1756 and substitution. [Jim Jagielski, Ruediger Pluem] 1757 1758 *) rotatelogs: Change command-line parsing to report more types 1759 of errors. Allow local timestamps to be used when rotating based 1760 on file size. [Jeff Trawick] 1761 1762 *) mod_proxy: Canonicalisation improvements. Add "nocanon" keyword to 1763 ProxyPass, to suppress URI-canonicalisation in a reverse proxy. Also, 1764 don't escape/unescape forward-proxied URLs. 1765 PR 41798, 42592 [Nick Kew, Ruediger Pluem, Roy Fielding, Jim Jagielski] 1766 1767 *) mod_status: Add SeeRequestTail directive, which determines if 1768 ExtendedStatus displays the 1st 63 characters of the request 1769 or the last 63. Useful for those requests with large string 1770 lengths and which only vary with the last several characters. 1771 [Jim Jagielski] 1772 1773 *) mod_ssl: Prevent memory corruption of version string. 1774 PR 43865, 43334 [William Rowe, Joe Orton] 1775 1776 *) core: Avoid some unexpected connection closes by telling the client 1777 that the connection is not persistent if the MPM process handling 1778 the request is already exiting when the response header is built. 1779 [Jeff Trawick] 1780 1781 *) mod_autoindex: Generate valid XHTML output by adding the xhtml 1782 namespace. PR 43649 [Jose Kahan <jose w3.org>] 1783 1784 *) mod_ldap: Give callers a reference to data copied into the request 1785 pool instead of references directly into the cache 1786 PR 43786 [Eric Covener] 1787 1788 *) mod_ldap: Stop passing a reference to pconf around for 1789 (limited) use during request processing, avoiding possible 1790 memory corruption and crashes. [Eric Covener] 1791 1792 *) Event MPM: Add support for running under mod_ssl, by reverting to the 1793 Worker MPM behaviors, when run under an input filter that buffers 1794 its own data. [Paul Querna] 1795 1796 *) mod_charset_lite: Don't crash when the request has no associated 1797 filename. [Jeff Trawick] 1798 1799 *) Core: fix possible crash at startup in case of nonexistent DocumentRoot. 1800 PR 39722 [Adrian Buckley <adrian.buckley ntlworld.com>] 1801 1802 *) HTTP protocol: Add "DefaultType none" option. 1803 PR 13986 and PR 16139 [Nick Kew] 1804 1805 *) mod_rewrite: Add option to suppress URL unescaping 1806 PR 34602 [Guenther Gsenger <guenther.gsenger gmail.com>] 1807 1808 *) mpm_winnt: Eliminate wait_for_many_objects. Allows the clean 1809 shutdown of the server when the MaxClients is higher then 257, 1810 in a more responsive manner [Mladen Turk, William Rowe] 1811 1812 *) mod_proxy_http: Remove Warning headers with wrong date 1813 PR 16138 [Nick Kew] 1814 1815 *) mod_proxy_http: Correctly parse all Connection headers in proxy. 1816 PR 43509 [Nick Kew] 1817 1818 *) mod_proxy_http: add Via header correctly (if enabled) to 1819 response, even where other Via headers exist. 1820 PR 19439 [Nick Kew] 1821 1822 *) http_core: OPTIONS * no longer maps to local storage or URI 1823 space. Note that unlike previous versions, OPTIONS * no 1824 longer returns an Allow: header. PR 43519 [Jim Jagielski] 1825 1826 *) mod_proxy_http: strip hop-by-hop response headers 1827 PR 43455 [Nick Kew] 1828 1829 *) mod_proxy: Don't by default violate RFC2616 by setting 1830 Max-Forwards when the client didn't send it to us. 1831 Leave that as a configuration option. 1832 PR 16137 [Nick Kew] 1833 1834 *) scoreboard: improve error message on apr_shm_create failure 1835 PR 40037 [Nick Kew] 1836 1837 *) proxy: Fix persistent backend connections. 1838 PR 43472 [Ruediger Pluem] 1839 1840 *) mod_deflate: initialise inflate-out filter correctly when the 1841 first brigade contains no data buckets. 1842 PR 43512 [Nick Kew] 1843 1844 *) mod_proxy_ajp: Ignore any ajp13 flush packets received before 1845 we send the response headers. See Tomcat PR 43478. 1846 [Jim Jagielski] 1847 1848 *) mod_proxy_balancer: Do not reset lbstatus, lbfactor and lbset when 1849 starting a new child. 1850 PR 39907 [Vinicius Petrucci <vpetrucci gmail.com>, Ruediger Pluem] 1851 1852 *) mod_proxy_http: Propagate Proxy-Authorization header correctly. 1853 PR 25947 [Nick Kew] 1854 1855 *) mod_proxy_ajp: Differentiate within AJP between GET and HEAD 1856 requests. PR 43060 [Jim Jagielski] 1857 1858 *) Don't send spurious "100 Continue" response lines. 1859 PR 38014 [Basant Kumar Kukreja <basant.kukreja sun.com>] 1860 1861 *) mod_proxy_ftp: Don't segfault on bad line in FTP listing 1862 PR 40733 [Ulf Harnhammar <metaur telia.com>] 1863 1864 *) mod_proxy: escape error-notes correctly 1865 PR 40952 [Thijs Kinkhorst <thijs debian.org>] 1866 1867 *) mod_proxy: check ProxyBlock for all blocked addresses 1868 PR 36987 [Timo Viipuri <timo.viipuri f-secure.com>] 1869 1870 *) mod_proxy: Don't lose bytes when a response line arrives in small chunks. 1871 PR 40894 [Andrew Rucker Jones <arjones simultan.dyndns.org>] 1872 1873 Changes with Apache 2.2.6 1874 1875 *) SECURITY: CVE-2007-3847 (cve.mitre.org) 1876 mod_proxy: Prevent reading past the end of a buffer when parsing 1877 date-related headers. PR 41144. 1878 [Davi Arnaut, Nick Kew] 1879 1880 *) SECURITY: CVE-2007-1863 (cve.mitre.org) 1881 mod_cache: Prevent a segmentation fault if attributes are listed in a 1882 Cache-Control header without any value. 1883 [Niklas Edmundsson <nikke acc.umu.se>] 1884 1885 *) SECURITY: CVE-2007-3304 (cve.mitre.org) 1886 prefork, worker, event MPMs: Ensure that the parent process cannot 1887 be forced to kill processes outside its process group. 1888 [Joe Orton, Jim Jagielski] 1889 1890 *) SECURITY: CVE-2006-5752 (cve.mitre.org) 1891 mod_status: Fix a possible XSS attack against a site with a public 1892 server-status page and ExtendedStatus enabled, for browsers which 1893 perform charset "detection". Reported by Stefan Esser. [Joe Orton] 1894 1895 *) SECURITY: CVE-2007-1862 (cve.mitre.org) 1896 mod_mem_cache: Copy headers into longer lived storage; header names and 1897 values could previously point to cleaned up storage. PR 41551. 1898 [Davi Arnaut <davi haxent.com.br>] 1899 1900 *) mod_info: mod_info outputs invalid XHTML 1.0 transitional. 1901 PR 42847 [Rici Lake <rici ricilake.net>] 1902 1903 *) mod_ssl: Fix spurious hostname mismatch warning for valid 1904 wildcard certificates. PR 37911. [Nick Burch <nick torchbox.com>] 1905 1906 *) mod_mem_cache: Increase the minimum and default value for 1907 MCacheMinObjectSize from 0 to 1, as a MCacheMinObjectSize of 0 does not 1908 make sense and leads to a division by zero. PR 40576. 1909 [Xuekun Hu <xuekun.hu gmail.com>] 1910 1911 *) mod_cache: Remove expired content from cache that cannot be revalidated. 1912 PR 30370. [Ruediger Pluem] 1913 1914 *) mod_proxy_http: accept proxy-sendchunked/proxy-sendchunks as synonymous. 1915 PR 43183 [Brian Rectanus <Brian.Rectanus breach.com>, Vincent Bray] 1916 1917 *) mod_proxy: Ensure that at least scheme://hostname[:port] matches between 1918 worker and URL when searching for the best fitting worker for a given 1919 URL. PR 40910 [Ruediger Pluem] 1920 1921 *) mod_proxy: Improve network performance by setting APR_TCP_NODELAY 1922 (disable Nagle algorithm) on sockets if implemented. 1923 PR 42871 [Christian BOITEL <christian_boitel yahoo.fr>, Jim Jagielski] 1924 1925 *) core: Do not replace a Date header set by a proxied backend server. 1926 PR 40232 [Ruediger Pluem] 1927 1928 *) mod_proxy: Add a missing assignment in an error checking code path. 1929 PR 40865 [Andrew Rucker Jones <arjones simultan.dyndns.org>] 1930 1931 *) mod_proxy_connect: avoid segfault on DNS lookup failure. 1932 PR 40756 [Trevin Beattie <tbeattie boingo.com>] 1933 1934 *) mod_proxy: enable Ignore Errors option on ProxyPass Status. 1935 PR 43167 [Francisco Gimeno <kikov kikov.org> 1936 1937 *) mod_proxy_http: Don't try to read body of a HEAD request before 1938 responding. PR 41644 [Stuart Children <stuart terminus.co.uk>] 1939 1940 *) mod_authnz_ldap: Don't return HTTP_UNAUTHORIZED during authorization when 1941 LDAP authentication is configured but we haven't seen any 1942 'Require ldap-*' directives, allowing authorization to be passed to lower 1943 level modules (e.g. Require valid-user) 1944 PR 43281 [Eric Covener] 1945 1946 *) mod_proxy: don't URLencode tilde in path component 1947 PR 38448 [Stijn Hoop <stijn sandcat.nl>] 1948 1949 *) proxy/ajp_header.c: Fixed header token string comparisons 1950 Matching of header tokens failed to include the trailing NIL byte 1951 and could misinterpret a longer header token for a shorter. 1952 Additionally, a "Content-Type" comparison was made case insensitive. 1953 [Martin Kraemer] 1954 1955 *) proxy/ajp_header.c: Backport of an AJP protocol fix for EBCDIC 1956 On EBCDIC machines, the status_line string was incorrectly converted 1957 twice. [Jean-Frederic Clere, Martin Kraemer] 1958 1959 *) mod_dumpio: Fix for correct dumping of traffic on EBCDIC hosts 1960 Data had been incorrectly converted twice, resulting in 1961 garbled log output. [Martin Kraemer] 1962 1963 *) mod_autoindex: Add in Type and Charset options to IndexOptions 1964 directive. This allows the admin to explicitly set the 1965 content-type and charset of the generated page and is therefore 1966 a viable workaround for buggy browsers affected by CVE-2007-4465 1967 (cve.mitre.org). [Jim Jagielski] 1968 1969 *) log core: ensure we use a special pool for stderr logging, so that 1970 the stderr channel remains valid from the time plog is destroyed, 1971 until the time the open_logs hook is called again. [William Rowe] 1972 1973 *) mod_negotiation: preserve Query String in resolving a type map 1974 PR 33112 [Jørgen Thomsen <apache jth.net>, Nick Kew] 1975 1976 *) mod_ssl: Version reporting update; displays 'compiled against' 1977 Apache and build-time SSL Library versions at loglevel [info], 1978 while reporting the run-time SSL Library version in the server 1979 info tags. Helps to identify a mod_ssl built against one flavor 1980 of OpenSSL but running against another (also adds SSL-C version 1981 number reporting.) [William Rowe] 1982 1983 *) mime.types: Many updates to sync with IANA registry and common 1984 unregistered types that the owners refuse to register. Admins 1985 are encouraged to update their installed mime.types file. 1986 PR: 35550, 37798, 39317, 31483 [Roy T. Fielding] 1987 1988 *) mod_expires: don't crash on bad configuration data 1989 PR 43213 [Julien Perez <julien.perez epsylonia.net>] 1990 1991 *) mod_dbd: Introduce configuration groups to allow inheritance by virtual 1992 hosts of database configurations from the main server. Determine the 1993 minimal set of distinct configurations and share connection pools 1994 whenever possible. Allow virtual hosts to override inherited SQL 1995 statements. PR 41302. [Chris Darroch] 1996 1997 *) mod_dbd: Create memory sub-pools for each DB connection and close 1998 DB connections in a pool cleanup function. Ensure prepared statements 1999 are destroyed before DB connection is closed. When using reslists, 2000 prevent segfaults when child processes exit, and stop memory leakage 2001 of ap_dbd_t structures. Avoid use of global s->process->pool, which 2002 isn't destroyed by exiting child processes in most multi-process MPMs. 2003 PR 39985. [Chris Darroch, Nick Kew] 2004 2005 *) mod_dbd: Handle error conditions in dbd_construct() properly. 2006 Simplify ap_dbd_open() and use correct arguments to apr_dbd_error() 2007 when non-threaded. Register correct cleanup data in non-threaded 2008 ap_dbd_acquire() and ap_dbd_cacquire(). Clean up configuration data 2009 and merge function. Use ap_log_error() wherever possible. 2010 [Chris Darroch, Nick Kew] 2011 2012 *) mod_dbd: Stash DBD connections in request_config of initial request 2013 only, or else sub-requests and internal redirections may cause 2014 entire DBD pool to be stashed in a single HTTP request. [Chris Darroch] 2015 2016 *) main core: Emit errors during the initial apr_app_initialize() 2017 or apr_pool_create() (when apr-based error reporting is not ready). 2018 [William Rowe, Jeff Trawick] 2019 2020 *) log core: fix the new piped logger case where we couldn't connect 2021 the replacement stderr logger's stderr to the NULL stdout stream. 2022 Continue in this case, since the previous alternative of no error 2023 logging at all (/dev/null) is far worse. [William Rowe] 2024 2025 *) mpm_winnt: Prevent the parent-child pipe from leaking into other 2026 spawned processes, and ensure we have a /Device/null handle for 2027 stdout when running as-a-service. [William Rowe] 2028 2029 *) mod_ldap: Avoid possible crashes, hangs, and busy loops due to 2030 improper merging of the cache lock in vhost config 2031 PR 43164 [Eric Covener] 2032 2033 *) ApacheMonitor: Fix Windows Vista detection. [Mladen Turk] 2034 2035 *) mod_deflate: fix protocol handling in deflate input filter 2036 PR 23287 [Nick Kew] 2037 2038 *) mime.types: add Registered Javascript/ECMAScript MIME types (RFC4329) 2039 PR 40299 [Dave Hodder <dmh dmh.org.uk>] 2040 2041 *) mod_filter: fix integer comparisons in dispatch rules 2042 PR 41835 [Nick Kew] 2043 2044 *) mod_filter: fix merging of ! and = in FilterChain 2045 PR 42186 [Issac Goldstand <margol beamartyr.net>] 2046 2047 *) mod_deflate: don't try to process metadata buckets as data. what should 2048 have been a 413 error was logged as a 500 and a blank screen appeared 2049 at the browser. 2050 [Greg Ames, Ruediger Pluem] 2051 2052 *) mod_cgi, mod_cgid: Fix use of CGI scripts as ErrorDocuments. 2053 PR 39710. [Paul Querna, Ruediger Pluem] 2054 2055 *) mod_proxy: Allow to use different values for sessionid 2056 in url encoded id and cookies. PR 41897. [Jean-Frederic Clere] 2057 2058 *) mod_proxy: Fix the 503 returned when session route does 2059 not match any of the balancer members. [Mladen Turk] 2060 2061 *) mod_proxy: Added ProxyPassMatch directive, which is similar 2062 to ProxyPass but takes a regex local path prefix. [Jim Jagielski] 2063 2064 *) mod_cache: Do not set Date or Expires when they are missing from 2065 the original response or are invalid. [Justin Erenkrantz] 2066 2067 *) mod_cache: Correctly handle HEAD requests on expired cache content. 2068 PR 41230. [Niklas Edmundsson <nikke acc.umu.se>] 2069 2070 *) mod_cache: Let Cache-Control max-age set the expiration of the cached 2071 representation if Expires is not set. [Justin Erenkrantz] 2072 2073 *) mod_cache: Allow caching of requests with query arguments when 2074 Cache-Control max-age is explicitly specified. [Justin Erenkrantz] 2075 2076 *) mod_disk_cache: Allow Vary'd responses to be refreshed properly. 2077 [Justin Erenkrantz] 2078 2079 *) mod_proxy: Print the correct error message for erroneous configured 2080 ProxyPass directives. PR 40439. [Takashi Sato <serai lans-tv.com>] 2081 2082 *) mod_so: Provide more helpful LoadModule feedback when an error occurs. 2083 [William Rowe] 2084 2085 *) mod_alias: Accept path components (URL part) in Redirects. PR 35314. 2086 [Nick Kew] 2087 2088 *) mod_headers: Allow % at the end of a Header value. PR 36609. 2089 [Nick Kew, Ruediger Pluem] 2090 2091 *) mod_cache: Use the same cache key throughout the whole request processing 2092 to handle escaped URLs correctly. PR 41475. [Ruediger Pluem] 2093 2094 *) mod_cache: Add CacheIgnoreQueryString directive. PR 41484. 2095 [Fredrik Widlund <fredrik.widlund qbrick.com>] 2096 2097 *) mod_cache: While serving a cached entity ensure that filters that have 2098 been applied to this cached entity before saving it to the cache are not 2099 applied again. PR 40090. [Ruediger Pluem] 2100 2101 *) mod_cache: Correctly cache objects whose URL query string has been 2102 modified by mod_rewrite. PR 40805. [Ruediger Pluem] 2103 2104 *) HTTP proxy ProxyErrorOverride: Leave 1xx and 3xx responses alone. Only 2105 processing of error responses (4xx, 5xx) will be altered. PR 39245. 2106 [Jeff Trawick, Bart van der Schans <schans hippo.nl>] 2107 2108 *) htdbm: Enable crypt support on platforms with crypt() but not 2109 <crypt.h>, such as z/OS. [David Jones <oscaremma gmail.com>] 2110 2111 *) mod_ssl: initialize thread locks before initializing the hardware 2112 acceleration library, so the latter can make use of the former. 2113 PR 20951. [<adunn at ncipher.com>] 2114 2115 *) ab.c: Correct behavior of HTTP request headers sent by ab 2116 in presence of -H command-line overrides. PR 31268, 26554. 2117 [Arvind Srinivasan <arvind.srinivasan sun.com>] 2118 2119 *) ab.c: The apr_port_t type is unsigned, but ab was using a 2120 signed format code in its reports. PR 42070. 2121 [Takashi Sato <serai lans-tv.com>] 2122 2123 *) mod_ldap: Remove the hardcoded size limit parameter for 2124 ldap_search_ext_s and replace it with an APR_ defined value that 2125 is set according to the LDAP SDK being used, resolving a problem 2126 with SDKs that define LDAP_NO_LIMIT to something other than -1. 2127 [David Jones <oscaremma gmail com>] 2128 2129 *) core: Correct a regression since 2.0.x in the handling of AllowOverride 2130 Options. PR 41829. [Torsten Förtsch <torsten.foertsch gmx.net>] 2131 2132 *) mod_proxy_http: Handle request bodies larger than 2 GB by converting 2133 the Content-Length header of the request correctly. PR 40883. 2134 [Ruediger Pluem, toadie <toadie643 gmail.com>] 2135 2136 *) mod_proxy: Fix some proxy setting inheritance problems (eg: 2137 ProxyTimeout). PR 11540. [Stuart Children <stuart terminus.co.uk>] 2138 2139 *) Unix MPMs: Catch SIGFPE so that exception hooks and CoreDumpDirectory 2140 can work after that terminating signal. 2141 [Eric Covener] 2142 2143 *) Win32: Makefile.win will now build with MS VC 8 (Visual Studio 2005) 2144 including embedding the .manifest information into each binary. 2145 [William Rowe] 2146 2147 There was no Apache 2.2.5 2148 2149 Changes with Apache 2.2.4 2150 2151 *) mod_isapi: Correctly present SERVER_PORT_SECURE. 2152 PR: 40573. [Matt Eaton <asf divinehawk.com>] 2153 2154 *) Allow htcacheclean, httxt2dbm, and fcgistarter to link apr/apr-util 2155 statically like the older support programs. 2156 [Eric Covener <covener gmail.com>] 2157 2158 *) core: Fix NONBLOCK status of listening sockets on restart/graceful 2159 PR 37680. [Darius Davis <darius-abz free-range.com.au>] 2160 2161 *) mod_deflate: Rework inflate output and deflate output filter to fix 2162 several issues: Incorrect handling of flush buckets, potential memory 2163 leaks, excessive memory usage in inflate output filter for large 2164 compressed content. PR 39854. 2165 [Ruediger Pluem, Nick Kew, Justin Erenkrantz] 2166 2167 *) mod_mem_cache: Memory leak fix: Unconditionally free the buffer. 2168 [Davi Arnaut <davi haxent.com.br>] 2169 2170 *) Allow mod_dumpio to log at other than DEBUG levels via 2171 the new DumpIOLogLevel directive. [Jim Jagielski] 2172 2173 *) rotatelogs: Improve error message for open failures. PR 39487. 2174 [Joe Orton] 2175 2176 *) mod_dbd: share per-request database handles across subrequests 2177 and internal redirects [Chris Darroch] 2178 2179 *) mod_dbd: key connection pools to virtual hosts correctly even when 2180 ServerName is unset/unavailable [Graham Leggett] 2181 2182 *) Better detection and clean up of ldap connection that has been 2183 terminated by the ldap server. PR 40878. 2184 [Rob Baily <rbaily servicebench com>] 2185 2186 *) mod_mem_cache: Convert mod_mem_cache to use APR memory pool functions 2187 by creating a root pool for object persistence across requests. This 2188 also eliminates the need for custom serialization code. 2189 [Davi Arnaut <davi haxent.com.br>] 2190 2191 *) mod_authnz_ldap: Add an AuthLDAPRemoteUserAttribute directive. If 2192 set, REMOTE_USER will be set to this attribute, rather than the 2193 username supplied by the user. Useful for example when you want users 2194 to log in using an email address, but need to supply a userid instead 2195 to the backend. [Graham Leggett] 2196 2197 *) mod_cgi and mod_cgid: Don't use apr_status_t error return 2198 from input filters as HTTP return value from the handler. 2199 PR 31759. [Nick Kew] 2200 2201 *) mod_cache: Eliminate a bogus error in the log when a filter returns 2202 AP_FILTER_ERROR. [Niklas Edmundsson <nikke acc.umu.se>] 2203 2204 *) core: Fix issue which could cause piped loggers to be orphaned and never 2205 terminate after a graceful restart. PR 40651. 2206 [Joe Orton, Ruediger Pluem] 2207 2208 *) core: Fix address-in-use startup failure caused by corruption of the list 2209 of listen sockets in some configurations with multiple generic Listen 2210 directives. [Jeff Trawick] 2211 2212 *) mod_headers: Support regexp-based editing of HTTP headers. [Nick Kew] 2213 2214 *) mod_proxy: Add explicit flushing feature. When Servlet container sends 2215 AJP body message with size 0, this means that Servlet container has asked 2216 for an explicit flush. Create flush bucket in that case. This feature has 2217 been added to the recent Tomcat versions without breaking the AJP 2218 protocol. [Mladen Turk] 2219 2220 *) mod_proxy_balancer: Set the new environment variable 2221 BALANCER_ROUTE_CHANGED if a worker with a route different from the one 2222 supplied by the client had been chosen or if the client supplied no 2223 routing information for a balancer with sticky sessions. 2224 [Ruediger Pluem] 2225 2226 *) mod_proxy_balancer: Add information about the route, the sticky session 2227 and the worker used during a request as environment variables. PR 39806. 2228 [Brian <brectanu gmail.com>] 2229 2230 *) mod_proxy: Don't try to use dead backend connection. PR 37770. 2231 [Olivier BOEL <ob dorrboel.com>] 2232 2233 *) mod_proxy_balancer: Extract stickysession routing information contained 2234 as parameter in the URL correctly. PR 40400. 2235 [Ruediger Pluem, Tomokazu Harada <harada sysrdc.ns-sol.co.jp>] 2236 2237 *) mod_proxy_ajp: Added cping/cpong support for the AJP protocol. 2238 A new worker directive ping=timeout will cause CPING packet 2239 to be send expecting CPONG packet within defined timeout. 2240 In case the backend is too busy this will fail instead 2241 sending the full header. [Mladen Turk] 2242 2243 *) mod_disk_cache: Make sure that only positive integers are accepted 2244 for the CacheMaxFileSize and CacheMinFileSize parameters in the 2245 config file. PR39380. [Niklas Edmundsson <nikke acc.umu.se>] 2246 2247 *) mod_cache: From RFC3986 (section 6.2.3.) if a URI contains an 2248 authority component and an empty path, the empty path is to be equivalent 2249 to "/". It explicitly cites the following four URIs as equivalents: 2250 http://example.com 2251 http://example.com/ 2252 http://example.com:/ 2253 http://example.com:80/ 2254 [Davi Arnaut <davi haxent.com.br>] 2255 2256 *) mod_cache: Don't cache requests with a expires date in the past; 2257 otherwise mod_cache will always try to cache the URL. This bug 2258 might lead to numerous rename() errors on win32 if the URL was 2259 previously cached. [Davi Arnaut <davi haxent.com.br>] 2260 2261 *) core: Deal with the widespread use of apr_status_t return values 2262 as HTTP status codes, as documented in PR#31759 (a bug shared by 2263 the default handler, mod_cgi, mod_cgid, mod_proxy, and probably 2264 others). PR31759. [Jeff Trawick, Ruediger Pluem, Joe Orton] 2265 2266 *) mod_ext_filter: Handle filter names which include capital letters. 2267 PR 40323. [Jeff Trawick] 2268 2269 *) mod_isapi: Avoid double trailing slashes in HSE_REQ_MAP_URL_TO_PATH 2270 support. Also corrects the slashes for Windows. 2271 PR 15993. [William Rowe] 2272 2273 *) mod_isapi: Handle "HTTP/1.1 200 OK" style status lines correctly, the 2274 token parser worked while the resulting length was misinterpreted. 2275 PR 29098. [Brock Bland <bbland serena.com>] 2276 2277 *) mod_isapi: Return 0 (failure) for more of the various ap_pass_brigade 2278 attempts to stream the response at the client. Log these as well. 2279 PR 30022, 40470. [William Rowe, Matt Eaton <asf divinehawk.com>] 2280 2281 *) mod_isapi: Ensure we walk through all the methods the developer may have 2282 employed to report their HTTP status result code. PR 16637 30033 28089 2283 [Matt Lewandowsky <matt iamcode.net>, William Rowe] 2284 2285 *) mod_echo: Fix precedence problem in if statement. PR 40658. 2286 [Larry Cipriani <lvc lucent.com>] 2287 2288 *) mod_mime_magic: Fix precedence problem in if statement. PR 40656. 2289 [Larry Cipriani <lvc lucent.com>] 2290 2291 *) The full server version information is now included in the error log at 2292 startup as well as server status reports, irrespective of the setting 2293 of the ServerTokens directive. ap_get_server_version() is now 2294 deprecated, and is replaced by ap_get_server_banner() and 2295 ap_get_server_description(). [Jeff Trawick] 2296 2297 *) mod_proxy_balancer: Workers can now be defined as part of 2298 a balancer cluster "set" in which members of a lower-numbered set 2299 are preferred over higher numbered ones. [Jim Jagielski] 2300 2301 *) mod_proxy_balancer: Workers can now be defined as "hot standby" which 2302 will only be used if all other workers are unusable (eg: in 2303 error or disabled). Also, the balancer-manager displays the election 2304 count and I/O counts of all workers. [Jim Jagielski] 2305 2306 *) mod_proxy_ajp: Close connection to backend if reading of request body 2307 fails. PR 40310. [Ian Abel <ianabel mxtelecom.com>] 2308 2309 *) mod_proxy_balancer: Retry worker chosen by route / redirect worker if 2310 it is in error state before sending "Service Temporarily Unavailable". 2311 PR 38962. [Christian Boitel <cboitel lfdj.com>] 2312 2313 Changes with Apache 2.2.3 2314 2315 *) SECURITY: CVE-2006-3747 (cve.mitre.org) 2316 mod_rewrite: Fix an off-by-one security problem in the ldap scheme 2317 handling. For some RewriteRules this could lead to a pointer being 2318 written out of bounds. Reported by Mark Dowd of McAfee. 2319 [Mark Cox] 2320 2321 *) Win32: Minor fixes to build more cleanly under Visual Studio 2005 2322 with command line builds. [William Rowe] 2323 2324 *) mod_authn_alias: Add a check to make sure that the base provider and the 2325 alias names are different and also that the alias has not been registered 2326 before. PR 40051. [Brad Nicholes] 2327 2328 *) mod_authnz_ldap: Fix a problem with invalid auth error detection for LDAP 2329 client SDKs that don't support the LDAP_SECURITY_ERROR macro. PR 39529. 2330 [Ray Price <dohrayme yahoo.com>, Josh Fenlason <jfenlason ptc.com>] 2331 2332 *) mod_cache: Do not overwrite the Content-Type in the cache, for 2333 successfully revalidated cached objects. PR 39647. [Ruediger Pluem] 2334 2335 *) mod_speling: Add directive to deal with case corrections only 2336 and ignore other misspellings [Olivier Thereaux <ot w3.org>] 2337 2338 *) mod_dbd: Fix dependence on virtualhost configuration in 2339 defining prepared statements (possible segfault at startup 2340 in user modules such as mod_authn_dbd). [Nick Kew] 2341 2342 *) Add optional 'scheme://' prefix to ServerName directive, 2343 allowing correct determination of the canonical server URL 2344 for use behind a proxy or offload device handling SSL; fixing 2345 redirect generation in those cases. PR 33398. [Sander Temme] 2346 2347 *) Added server_scheme field to server_rec for above. Minor MMN bump. 2348 [Sander Temme] 2349 2350 *) mod_cache: Make caching of reverse SSL proxies possible again. PR 39593. 2351 [Ruediger Pluem, Joe Orton] 2352 2353 *) Worker MPM: On graceless shutdown or restart, send signals to 2354 each worker thread to wake them up if they're polling on a 2355 Keep-Alive connection. PR 38737. [Chris Darroch] 2356 2357 *) worker and event MPMs: fix excessive forking if fork() or child_init 2358 take a long time. PR 39275. 2359 [Greg Ames, Jeff Trawick, Chris Darroch <chrisd pearsoncmg.com> ] 2360 2361 *) configure: Add "--with-included-apr" flag to force use of the 2362 bundled version of APR at build time. [Joe Orton] 2363 2364 *) Respect GracefulShutdownTimeout in the worker and event MPMs. 2365 [Chris Darroch, Garrett Rooney] 2366 2367 *) mod_mem_cache: Set content type correctly when delivering data from 2368 cache. PR 39266. [Ruediger Pluem] 2369 2370 *) mod_autoindex: Fix filename escaping with FancyIndexing disabled. 2371 PR 38910. [Robby Griffin <rmg terc.edu>] 2372 2373 *) mod_charset_lite: Bypass translation when the source and dest charsets 2374 are the same. [Jeff Trawick] 2375 2376 Changes with Apache 2.2.2 2377 2378 *) mod_deflate: work correctly in an internal redirect 2379 [Brian J. France <list firehawksystems com>] 2380 2381 *) mod_proxy_balancer: Initialize members of a balancer correctly. 2382 PR 38227. [James A. Robinson <jim.robinson stanford.edu>] 2383 2384 *) mod_proxy: Do not release connections from connection pool twice. 2385 PR 38793. [Ruediger Pluem, matthias <mk-asf gigacodes.de>] 2386 2387 *) core: Prevent reading uninitialized memory while reading a line of 2388 protocol input. PR 39282. [Davi Arnaut <davi haxent com br>] 2389 2390 *) mod_dbd: Update defaults, improve error reporting. 2391 [Chris Darroch <chrisd pearsoncmg com>, Nick Kew] 2392 2393 *) mod_dbd: Create own pool and mutex to avoid problem use of 2394 process pool in request processing. 2395 [Chris Darroch <chrisd pearsoncmg com>] 2396 2397 *) HTML-escape the Expect error message. Not classed as security as 2398 an attacker has no way to influence the Expect header a victim will 2399 send to a target site. Reported by Thiago Zaninotti 2400 <thiango nstalker.com>. [Mark Cox] 2401 2402 *) htdbm: Fix crash processing -d option in 64-bit mode on HP-UX. 2403 [Jeff Trawick] 2404 2405 *) htdbm: Warn the user when adding a plaintext password on a platform 2406 where it wouldn't work with the server (i.e., anywhere that has 2407 crypt()). [Jeff Trawick] 2408 2409 *) mod_proxy: don't reuse a connection that may be to the wrong backend 2410 PR 39253 [Ruediger Pluem] 2411 2412 *) Default handler: Don't return output filter apr_status_t values. 2413 PR 31759. [Jeff Trawick, Ruediger Pluem, Joe Orton] 2414 2415 Changes with Apache 2.2.1 (not released) 2416 2417 *) SECURITY: CVE-2005-3357 (cve.mitre.org) 2418 mod_ssl: Fix a possible crash during access control checks if a 2419 non-SSL request is processed for an SSL vhost (such as the 2420 "HTTP request received on SSL port" error message when an 400 2421 ErrorDocument is configured, or if using "SSLEngine optional"). 2422 PR 37791. [Rüdiger Plüm, Joe Orton] 2423 2424 *) SECURITY: CVE-2005-3352 (cve.mitre.org) 2425 mod_imagemap: Escape untrusted referer header before outputting 2426 in HTML to avoid potential cross-site scripting. Change also 2427 made to ap_escape_html so we escape quotes. Reported by JPCERT. 2428 [Mark Cox] 2429 2430 *) mod_proxy_ajp: Flushing of the output after each AJP chunk is now 2431 configurable at runtime via the 'flushpackets' and 'flushwait' worker 2432 params. Minor MMN bump. [Jim Jagielski] 2433 2434 *) mod_proxy: Fix incorrect usage of local and shared worker init. 2435 PR 38403. [Jim Jagielski] 2436 2437 *) mod_isapi: Fix compiler errors on Unix platforms. 2438 [William Rowe] 2439 2440 *) mod_proxy_http: Do send keep-alive header if the client sent 2441 connection: keep-alive and do not close backend connection if the client 2442 sent connection: close. PR 38524. [Ruediger Pluem, Joe Orton] 2443 2444 *) mod_disk_cache: Return the correct error codes from bucket read 2445 failures, instead of APR_EGENERAL. 2446 [Brian Akins <brian.akins turner.com>] 2447 2448 *) Add APR/APR-Util Compiled and Runtime Version numbers to the 2449 output of 'httpd -V'. [William Rowe] 2450 2451 *) http: If a connection is aborted while waiting for a chunked line, 2452 flag the connection as errored out. [Justin Erenkrantz] 2453 2454 *) core: Reject invalid Expect header immediately. PR 38123. 2455 [Ruediger Pluem] 2456 2457 *) Fix mis-shifted 32 bit scope, masked to 64 bits as a method. 2458 [Will Rowe, Joe Orton] 2459 2460 *) mod_proxy: Fix KeepAlives not being allowed and set to 2461 backend servers. PR 38602. [Ruediger Pluem, Jim Jagielski] 2462 2463 *) Fix instdso.sh "sed syntax error" installation issue on some 2464 platforms. PR 38108. [Masaoki Kobayashi <masaoki techfirm.co.jp>] 2465 2466 *) mod_ssl: Fix possible crashes in shmcb with gcc 4 on platforms 2467 requiring word-aligned pointers. PR 38838. [Joe Orton] 2468 2469 *) mod_proxy: If we get an error reading the upstream response, 2470 close the connection. [Justin Erenkrantz, Roy T. Fielding, 2471 Jim Jagielski, Ruediger Pluem] 2472 2473 *) mod_proxy_ajp: Support common headers of the AJP protocol in responses. 2474 PR 38340. [Aleksey Pesternikov <apesternikov yahoo.com>] 2475 2476 *) mod_proxy_balancer: Do not overwrite the status of initialized workers 2477 and respect the configured status of uninitilized workers when creating 2478 a new child process. [Ruediger Pluem] 2479 2480 *) mod_proxy_ajp: Crosscheck the length of the body chunk with the length of 2481 the ajp message to prevent mod_proxy_ajp from reading beyond the buffer 2482 boundaries and thus revealing possibly sensitive memory contents to the 2483 client. [Ruediger Pluem] 2484 2485 *) Ensure that the proper status line is written to the client, fixing 2486 incorrect status lines caused by filters which modify r->status without 2487 resetting r->status_line, such as the built-in byterange filter. 2488 [Jeff Trawick] 2489 2490 *) mod_speling: Stop crashing with certain non-file requests. 2491 [Jeff Trawick] 2492 2493 *) mod_cache: Make caching of reverse proxies possible again. PR 38017. 2494 [Ruediger Pluem] 2495 2496 *) Modify apr[util] .h detection to avoid breakage on VPATH builds 2497 using Solaris make (amoung others) and avoid breakage in ./buildconf 2498 when srclib/apr[-util] are symlinks rather than directories proper. 2499 [William Rowe] 2500 2501 *) Avoid Server-driven negotiation when a script has emitted an 2502 explicit Status: header. PR 38070. [Nick Kew] 2503 2504 *) Fix to avoid feeding C99 to C++ compilers. [Joe Orton] 2505 2506 *) Chunk filter: Fix chunk filter to create correct chunks in the case that 2507 a flush bucket is surrounded by data buckets. [Ruediger Pluem] 2508 2509 *) Fix syntax error in httpd.h with strict compilers. PR 37840. 2510 [Per Olausson <pao darkheim.freeserve.co.uk>] 2511 2512 *) Fix recursive ErrorDocument handling. PR 36090. 2513 [Chris Darroch <chrisd pearsoncmg.com>] 2514 2515 *) Don't hang on error return from post_read_request. PR 37790. 2516 [Nick Kew] 2517 2518 *) Fix off-by-one error in proxy_balancer. PR 37753. 2519 [Kazuhiro Osawa <ko yappo ne jp>] 2520 2521 Changes with Apache 2.2.0 2522 2523 *) mod_negotiation: Minor performance tweak by reusing already calculated 2524 strlen. 2525 [Ruediger Pluem, Christophe Jaillet <christophe.jaillet wanadoo.fr>] 2526 2527 *) Remove support for 'On' and 'Off' for AuthBasicProvider and 2528 AuthDigestProvider. [Joshua Slive, Justin Erenkrantz] 2529 2530 *) Add in new UseCanonicalPhysicalPort directive, which controls 2531 whether or not Apache will ever use the actual physical port 2532 when constructing the canonical port number. [Jim Jagielski] 2533 2534 *) mod_dav: Fix a null pointer dereference in an error code path during the 2535 handling of MKCOL. 2536 [Ruediger Pluem, Ghassan Misherghi <ghassanm ucdavis.edu>] 2537 2538 *) mod_proxy_balancer: When finding best worker, use case insensitive 2539 match for scheme and host, but case sensitive for the rest of 2540 the path. [Jim Jagielski, Ruediger Pluem] 2541 2542 *) Require use of APR >= 1.2.0 and APR-util >= 1.2.0 when configured 2543 to use external copies of the libraries. [Joe Orton] 2544 2545 *) Fix DESTDIR=... installation when using bundled copy of APR. 2546 [Torsten Foertsch <torsten.foertsch gmx.net>] 2547 2548 *) mod_dav: Fix handling of unknown state tokens in If: headers. 2549 PR: 37288. [Joe Orton] 2550 2551 *) Strip out Experimental MPMs that have gone nowhere since 2.0 2552 (perchild, threadpool, leader). [Nick Kew] 2553 2554 Changes with Apache 2.1.9 2555 2556 *) Add mod_authn_dbd (SQL-based authentication) [Nick Kew] 2557 2558 *) mod_proxy_ajp: Do not spool the entire response from AJP backend before 2559 sending it up the filter chain. PR 37100. [Ruediger Pluem] 2560 2561 *) mod_cache: Create new filters CACHE_OUT_SUBREQ / CACHE_SAVE_SUBREQ which 2562 only differ by the type from CACHE_OUT / CACHE_SAVE to ensure that 2563 subrequests to non-local resources work again. [Ruediger Pluem] 2564 2565 *) mod_proxy: Do not lowercase the entire worker name of a BalancerMember 2566 since this breaks case sensitive URI's. PR 36906. [Ruediger Pluem] 2567 2568 *) core: AddOutputFilterByType is ignored for proxied requests. PR 31226. 2569 [Joe Orton, Ruediger Pluem] 2570 2571 *) mod_proxy_http: Prevent data corruption of POST request bodies when 2572 client accesses proxied resources with SSL. PR 37145. 2573 [Ruediger Pluem, William Rowe] 2574 2575 *) mod_ssl: Fix issue which could cause spurious warnings about use 2576 of name-based vhosts. PR 37051. [Joe Orton] 2577 2578 *) ab: Fix to ensure that only the expected number of requests are run. 2579 PR 36966. [Joe Orton] 2580 2581 *) mod_proxy_balancer: BalancerManager and proxies correctly handle 2582 member workers with paths. PR 36816. [Ruediger Pluem, Jim Jagielski] 2583 2584 *) mod_log_config: %{hextid}P will log the thread id in hex with APR 2585 versions 1.2.0 or higher. [Jeff Trawick] 2586 2587 *) httpd.exe/apachectl -V: display the DYNAMIC_MODULE_LIMIT setting, as 2588 in 1.3. [Jeff Trawick] 2589 2590 *) Support dbd connection tied to conn_rec in mod_dbd. [Nick Kew] 2591 2592 *) Fix use of pools in mod_dbd. [Brian J France, Nick Kew] 2593 2594 *) Promote modules from "experimental": mod_dbd, mod_filter, 2595 mod_charset_lite. [Nick Kew] 2596 2597 *) mod_proxy_ajp: mod_proxy_ajp sends empty SSL attributes for non SSL 2598 connections. PR 36883. 2599 [William Barker <william.barker wilshire.com>, Ruediger Pluem] 2600 2601 *) Eliminated the NET_TIME filter, restructuring the timeout logic. 2602 This provides a working mod_echo on all platforms, and ensures any 2603 custom protocol module is at least given an initial timeout value 2604 based on the <VirtualHost > context's Timeout directive. 2605 [William Rowe] 2606 2607 *) mod_proxy: Run the request_status hook also if there are no free workers 2608 or all workers are in error state. 2609 [Ruediger Pluem, Brian Akins <brian.akins turner.com>] 2610 2611 *) mod_proxy_connect: Fix high CPU loop on systems like UnixWare which 2612 trigger POLL_ERR or POLL_HUP on a terminated connection. PR 36951. 2613 [Jeff Trawick, Ruediger Pluem] 2614 2615 *) mod_proxy_balancer: Fix handling of sticky sessions with Tomcat. 2616 PR 36507. [Ruediger Pluem] 2617 2618 *) SECURITY: CVE-2005-2970 (cve.mitre.org) 2619 worker MPM: Fix a memory leak which can occur after an aborted 2620 connection in some limited circumstances. [Greg Ames] 2621 2622 *) Doxygen fixups. [Neale Ranns <neale ranns.org>, Ian Holsman] 2623 2624 *) mod_cache/mod_dir: Correct a subrequest lookup bug which was preventing 2625 mod_dir from serving indexes correctly with mod_cache enabled. 2626 [Colm MacCarthaigh] 2627 2628 Changes with Apache 2.1.8 2629 2630 *) Fix lingering close implementation to match 1.3.x behaviour. 2631 PR 35292. [Joe Orton] 2632 2633 *) mod_ssl: Support limited buffering of request bodies to allow 2634 per-location renegotiation to proceed. PR 12355. [Joe Orton] 2635 2636 *) Fix regression since 2.0.x in AllowOverride Options handling. 2637 PR 35330. [kabe <kabe sra-tohoku.co.jp>] 2638 2639 *) mod_ssl: Fix memory leak in ssl_util_algotypeof(). 2640 PR 25659. [David Blake <dblake hp com>, Martin Kraemer] 2641 2642 *) prefork, worker and event MPMs: Support a graceful-stop procedure: 2643 Server will wait until existing requests are finished or until 2644 "GracefulShutdownTimeout" number of seconds before exiting. 2645 [Colm MacCarthaigh, Ken Coar, Bill Stoddard] 2646 2647 *) prefork, worker and event MPMs: Prevent children from holding open 2648 listening ports upon graceful restart or stop. PR 28167. 2649 [Colm MacCarthaigh, Brian Pinkerton <bp thinkpink.com>] 2650 2651 *) SECURITY: CVE-2005-2700 (cve.mitre.org) 2652 mod_ssl: Fix a security issue where "SSLVerifyClient" was not 2653 enforced in per-location context if "SSLVerifyClient optional" 2654 was configured in the vhost configuration. [Joe Orton] 2655 2656 *) mod_ssl: Catch parse errors from misconfigured or malformed 2657 CRLs. PR 36438. [Joe Orton] 2658 2659 *) mod_proxy/mod_proxy_balancer: lbmethods now implemented as 2660 providers. Prevent problems when no Vhost containers were 2661 configured with proxy balancers. [Jim Jagielski] 2662 2663 *) New provider function to list all available provider names in a 2664 specific group and version (ap_list_provider_names). [Jim Jagielski] 2665 2666 *) mod_cache: Enhance CacheEnable/CacheDisable to control caching on a 2667 per-protocol, per-host and per-path basis. Intended for proxy 2668 configurations. [Colm MacCarthaigh] 2669 2670 *) mod_disk_cache: Canonicalise the storage key, for improved hit/miss 2671 ratio. [Colm MacCarthaigh] 2672 2673 *) mod_cgid: Append .PID to the script socket filename and remove the 2674 script socket on exit. [Colm MacCarthaigh, Jim Jagielski] 2675 2676 *) mod_cgid: run the get_suexec_identity hook within the request-handler 2677 instead of within cgid. PR 36410. [Colm MacCarthaigh] 2678 2679 *) Linux 2.0: remove support for threaded MPM's due to linuxthreads use 2680 of SIGUSR1 clashing with graceful restart signal. [Colm MacCarthaigh] 2681 2682 Changes with Apache 2.1.7 2683 2684 *) SECURITY: CVE-2005-2491 (cve.mitre.org): 2685 Fix integer overflows in PCRE in quantifier parsing which could 2686 be triggered by a local user through use of a carefully-crafted 2687 regex in an .htaccess file. [Philip Hazel] 2688 2689 *) mod_proxy/mod_proxy_balancer: Provide a simple, functional 2690 interface to add additional balancer lb selection methods 2691 without requiring code changes to mod_proxy/mod_proxy_balancer; 2692 these can be implemented via sub-modules now. [Jim Jagielski] 2693 2694 *) mod_cache: Fix incorrectly served 304 responses when expired cache 2695 entity is valid, but cache is unwritable and headers cannot be 2696 updated. [Colm MacCarthaigh <colm stdlib.net>] 2697 2698 *) mod_cache: Remove entities from the cache when re-validation 2699 receives a 404 or other content-no-longer-present error. 2700 [Rüdiger Plüm ruediger.pluem vodafone.com] 2701 2702 *) mod_disk_cache: Properly remove files from cache when needed. 2703 [Rüdiger Plüm ruediger.pluem vodafone.com] 2704 2705 *) mod_disk_cache: Support htcacheclean removing directories. 2706 [Andreas Steinmetz] 2707 2708 *) htcacheclean: Add -t option to remove empty directories. 2709 [Colm MacCarthaigh <colm stdlib.net>] 2710 2711 *) Remove the base href tag from mod_proxy_ftp, as it breaks relative 2712 links for clients not using an Authorization header. [Graham Leggett, 2713 Jon Snow <jsnow27 gatesec.net>] 2714 2715 *) mod_cache: Restore the HTTP status of cached responses. 2716 [Hansjoerg Pehofer <hansjoerg.pehofer uibk.ac.at>] 2717 2718 *) mod_cache: Store varied contents all in the same prefix for a varied URI. 2719 [Paul Querna] 2720 2721 *) mod_cache: Run the CACHE_SAVE and CACHE_OUT Filters after other content 2722 filters. [Paul Querna] 2723 2724 *) mod_negotiation: Correctly report 404 instead of 403 for missing files. 2725 [Paul Querna] 2726 2727 *) new hook (request_status) that gets ran in proxy_handler just before 2728 the final return. This gives modules an opportunity to do something 2729 based on the proxy status. (minor MMN bump) 2730 [Brian Akins <bakins turner.com>, Ian Holsman] 2731 2732 *) Add additional SSLSessionCache option, 'nonenotnull', which is 2733 similar to 'none' (disabling any external shared cache) but forces 2734 OpenSSL to provide a non-null session ID. [Jim Jagielski] 2735 2736 *) Add httxt2dbm to support/ for creating RewriteMap DBM Files. 2737 [Paul Querna] 2738 2739 *) Add SSL_COMPRESS_METHOD variable (included in +StdEnvVars) to note 2740 the negotiated compression. [Georg v. Zezschwitz <gvz 2scale.de>] 2741 2742 *) Fixed complaints about unpackaged files within the RPM build 2743 after changes to the config files. [Graham Leggett] 2744 2745 *) Fix shutdown for the Worker MPM when an Accept Filter is used. Instead of 2746 just closing the socket, a HTTP request is made, to make sure the child is 2747 always awakened. [Paul Querna] 2748 2749 Changes with Apache 2.1.6 2750 2751 *) Fix htdbm password validation for records which included comments. 2752 [Eric Covener <covener gmail.com>] 2753 2754 *) mod_cgid: Fix buffer overflow processing ScriptSock directive. 2755 [Steve Kemp <steve steve.org.uk>] 2756 2757 Changes with Apache 2.1.5 2758 2759 *) mod_ssl: Setting the Protocol to 'https' can replace the use of the 2760 'SSLEngine on' command. [Paul Querna] 2761 2762 *) core: Refactor the mapping of Accept Filters to Sockets. Add the 2763 AcceptFilter and Protocol directives to aid in mapping filter types. 2764 Extend the Listen directive to optionally take a protocol name. 2765 [Paul Querna] 2766 2767 *) mod_disk_cache: Support storing multiple variations of one URL. PR 35211. 2768 [Paul Querna] 2769 2770 *) mod_disk_cache: Atomically create the header data file. [Paul Querna] 2771 2772 *) mod_cache: Fix 'Vary: *' behavior to be RFC compliant. PR 16125. 2773 [Paul Querna] 2774 2775 *) mod_cache: Rename 'generate_name' to 'ap_cache_generate_name'. 2776 [Paul Querna] 2777 2778 *) mod_mime_magic: Handle CRLF-format magic files so that it works with 2779 the default installation on Windows. [Jeff Trawick] 2780 2781 *) core: Allow multiple modules to register interest in a single 2782 configuration command. [Paul Querna] 2783 2784 *) authn_provider_alias: Adds the configuration block tag 2785 <AuthnProviderAlias baseProvider Alias> 2786 Authentication directives contained within this block can be 2787 referenced as a new authProvider using the AuthBasicProvider or 2788 AuthDigestProvider directive. These directives will be merged in to 2789 the per_dir configuration just before the base provider is called. 2790 [Brad Nicholes] 2791 2792 *) ap_getword_conf: Fix backslashes at the end of configuration directives. 2793 PR 34834. [Timo Viipuri <viipuri dlc.fi>] 2794 2795 *) mod_dbd: New additions: mod_dbd.c, mod_dbd.h, mod_dbd.xml 2796 Provide module hooks for apr_dbd; optimise for httpd 2797 threaded and non-threaded arch [Nick Kew] 2798 2799 *) ab: SSL support rewritten, improved, and enabled if SSL is enabled 2800 during the build; -f and -Z arguments added to specify SSL protocol 2801 options. [Masaoki Kobayashi <masaoki techfirm.co.jp>] 2802 2803 *) mod_info: Show the Quick Handler [Paul Querna] 2804 2805 *) mod_ldap: Add the directive LDAPVerifyServerCert to specify 2806 whether to force verification of the server certificate when 2807 establishing an SSL connection to the LDAP server. 2808 [Brad Nicholes] 2809 2810 *) mod_proxy: Run mod_rewrite before mod_proxy in the translate_name 2811 hook. [Paul Querna] 2812 2813 *) Add AP_INIT_TAKE_ARGV for configuration commands. (minor MMN bump) 2814 [Paul Querna] 2815 2816 *) ap_get_local_host() rewritten for APR. [Jim Jagielski] 2817 2818 *) Add the ap_vhost_iterate_given_conn function to expose the information 2819 used in Name Based Virtual Hosting. (minor MMN bump) 2820 [Paul Querna] 2821 2822 *) Remove the never working ap_method_list_do and ap_method_list_vdo. 2823 [Paul Querna] 2824 2825 *) Added makefile and doc for building mod_ssl on the NetWare 2826 platform. [Guenter Knauf, Brad Nicholes] 2827 2828 *) mod_deflate: Merge the Vary header, isntead of Setting it. Fixes 2829 applications that send the Vary Header themselves, and also apply 2830 mod_deflate as an output filter. [Paul Querna] 2831 2832 *) Change the default (when not present in the config file) setting 2833 for UseCanonicalName to Off. 2834 [Joshua Slive] 2835 2836 *) mod_userdir: The module no longer does any remapping unless the 2837 UserDir directive is present in the config file. 2838 [Joshua Slive] 2839 2840 *) Massively simplify the distributed httpd.conf by removing 2841 many features and many directives that are at their default 2842 setting. Add a selection of example config excerpts for adding 2843 extra features in the conf/extra/ directory. Install the 2844 distributed config and the extra config examples in the 2845 conf/original/ directory during make install. 2846 [Joshua Slive, Justin Erenkrantz] 2847 2848 *) NetWare: Reposition mod_asis, mod_actions, mod_cgi, mod_imagemap, 2849 mod_userdir and mod_autoindex as shared modules rather than 2850 built-in modules within the NetWare build. 2851 [Brad Nicholes] 2852 2853 *) Rename mod_imap to mod_imagemap. 2854 [Paul Querna] 2855 2856 *) util_ldap: Eliminate the load ordering of mod_ldap and mod_authnz_ldap 2857 by changing the mod_ldap exported functions to optional functions. 2858 [Brad Nicholes] 2859 2860 Changes with Apache 2.1.4 2861 2862 *) Don't let a subrequest inherit headers describing the original request's 2863 body. [Greg Ames] 2864 2865 *) Fix Windows CompContext buff size miscalculation 2866 [Allan Edwards] 2867 2868 *) Add ReceiveBufferSize directive to control the TCP receive buffer. 2869 [Eric Covener <covener gmail.com>] 2870 2871 *) mod_proxy: Add proxy-sendextracrlf option to send an extra CRLF at the 2872 end of the request body to work with really old HTTP servers. 2873 [Justin Erenkrantz] 2874 2875 *) util_ldap: Keep track of the number of attributes retrieved from 2876 LDAP so that all the values can be properly cached even if the 2877 value is NULL. PR 33901 [Brad Nicholes] 2878 2879 *) mod_cache: Fix error where incoming Cache-Control would be ignored. 2880 [Justin Erenkrantz] 2881 2882 *) mod_cache: Correctly handle originally conditional requests. 2883 [Sander Striker] 2884 2885 *) mod_disk_cache: Correctly update cached headers on revalidated responses. 2886 [Sander Striker, Justin Erenkrantz] 2887 2888 *) worker MPM/mod_status: Support per-worker tracking of pid and 2889 generation in the scoreboard so that mod_status can accurately 2890 represent workers in processes which are gracefully terminating. 2891 (major MMN bump) 2892 [Jeff Trawick] 2893 2894 *) Correctly export all mod_dav public functions. 2895 [Branko Čibej <brane xbc.nu>] 2896 2897 Changes with Apache 2.1.3 2898 2899 *) mod_ssl: Add ssl_ext_lookup optional function for accessing 2900 certificate extensions. [David Reid, Joe Orton] 2901 2902 *) Add support for use of an external PCRE library; pass the 2903 --with-pcre flag to configure. PR 27550. [Joe Orton, 2904 Andres Salomon <dilinger voxel.net>] 2905 2906 *) Renamed regex interfaces to be namespace-safe, and moved from 2907 pcreposix.h header to ap_regex.h: regex_t->ap_regex_t, 2908 regmatch_t->ap_regmatch_t; REG_*->AP_REG_*; functions 2909 reg*->ap_reg*. PR 27550. [Andres Salomon <dilinger voxel.net>, 2910 Joe Orton] 2911 2912 *) Only recompile buildmark.c when we have to relink httpd. 2913 [Justin Erenkrantz] 2914 2915 *) mod_cache: Fix up handling of revalidated responses. 2916 [Justin Erenkrantz] 2917 2918 *) mod_disk_cache: Properly load cached ETag from on-disk structures. 2919 [Justin Erenkrantz] 2920 2921 *) mod_authnz_ldap: Added an optional second parameter to AuthLDAPURL 2922 to allow it to override the connection type set in mod_ldap. This 2923 parameter can be set to NONE, SSL or TLS | STARTTLS. 2924 [Brad Nicholes] 2925 2926 *) Fix --with-apr=/usr and/or --with-apr-util=/usr. PR 29740. 2927 [Max Bowsher <maxb ukf.net>] 2928 2929 *) mod_proxy: Fix ProxyRemoteMatch directive. PR 33170. 2930 [Rici Lake <rici ricilake.net>] 2931 2932 *) mod_proxy: Fix ap_proxy_canonenc API. 2933 PR 32459. [Jim Jagielski] 2934 2935 *) mod_cache: Add CacheStorePrivate and CacheStoreNoStore directive. 2936 [Justin Erenkrantz] 2937 2938 *) Add --enable-pie flag to configure, to build httpd as a Position 2939 Independent Executable where supported (GCC/binutils). 2940 [Joe Orton] 2941 2942 *) proxy_balancer: Add in load-balancing via weighted traffic 2943 byte count. [Jim Jagielski] 2944 2945 *) mod_disk_cache: Cache r->err_headers_out headers. This allows CGI 2946 scripts to be properly cached. [Justin Erenkrantz, Sander Striker] 2947 2948 *) mod_ldap: Updated to use the new apr-util v1.1 apr_ldap_*_option() 2949 API for the setting of server and client SSL certificates. Replaced 2950 LDAPTrustedCA directive with LDAPTrustedGlobalCert and 2951 LDAPTrustedClientCert directives to correctly support global certs 2952 (CA certs / Netware client certs) and per connection client certs 2953 as supported by Netware, OpenLDAP and Netscape/Mozilla. 2954 [Graham Leggett] 2955 2956 *) mod_cache: Remove unimplemented CacheForceCompletion directive. 2957 [Justin Erenkrantz] 2958 2959 *) support/check_forensic: Fix temp file usage 2960 [Javier Fernandez-Sanguino Pen~a <jfs computer.org>] 2961 2962 *) mod_ssl: Add SSLCADNRequestFile and SSLCADNRequestPath directives 2963 which can be used to configure a specific list of CA names to send 2964 in a client certificate request. PR 32848. 2965 [Tim Taylor <tim.taylor dfas.mil>] 2966 2967 *) --with-module can now take more than one module to be statically 2968 linked: --with-module=<modtype>:<modfile>,<modtype>:<modfile>,... 2969 If the <modtype>-subdirectory doesn't exist it will be created and 2970 populated with a standard Makefile.in. [Erik Abele] 2971 2972 *) Remove some compiler warnings within the LDAP modules [Graham Leggett] 2973 2974 *) Add a build script to create a solaris package. [Graham Leggett] 2975 2976 *) ap_http_scheme() replaced with ap_http_method() - this function 2977 returns the scheme (http v.s. https). 2978 [William Rowe] 2979 2980 *) mod_proxy: Fix a request corruption problem and a buffering problem 2981 which sometimes prevented proxy-sendchunks from working. 2982 [Jeff Trawick] 2983 2984 *) Fix the RPM spec file so that an RPM build now works. An RPM 2985 build now requires system installations of APR and APR-util. 2986 [Graham Leggett] 2987 2988 *) Significantly simplify the load balancer scheduling algorithm 2989 for the proxy BalancerMember weighting. loadfactors (lbfactors) 2990 are now normalized with respect to each other. [Jim Jagielski] 2991 2992 *) mod_dumpio: Added to the available module suite; it is an 2993 I/O logging/dumping module. Placed in the (new) debug module 2994 subdirectory. mod_bucketeer moved to that directory as well. 2995 [Jim Jagielski] 2996 2997 *) core: Add support for APR_TCP_DEFER_ACCEPT to defer accepting 2998 of a connection until data is available. 2999 [Paul Querna] 3000 3001 Changes with Apache 2.1.2 3002 3003 *) mod_proxy: Respect errors reported by pre_connection hooks. 3004 [Jeff Trawick] 3005 3006 *) core: Error out on sections that are missing an argument instead of 3007 silently consuming the section. PR 25460. 3008 [Geoffrey Young, Paul Querna] 3009 3010 *) mod_cache/mod_mem_cache/mod_disk_cache: Move out of experimental. 3011 3012 *) Upgraded PCRE to version 5.0. [Brian Pane] 3013 3014 *) mod_cgid: Catch configuration problem where two web server instances 3015 share same ServerRoot but admin forgot to use ScriptSock. 3016 [Jeff Trawick] 3017 3018 *) mod_cgi: Ensure that all stderr is logged for a script which returns 3019 a Location header to generate a non-local redirect. PR 20111. 3020 [Joe Orton] 3021 3022 *) Added the Event MPM to more efficiently handle clients during a 3023 Keep Alive request. 3024 [Paul Querna, Greg Ames] 3025 3026 Changes with Apache 2.1.1 3027 3028 *) mod_proxy_http: Stream content better - always flush buffered data to 3029 the client before blocking waiting for new data. PR 19954. 3030 [Joe Orton] 3031 3032 *) mod_ssl: Add support for command-line option "-t -DDUMP_CERTS" which 3033 will dump the filenames of all configured SSL certificates to stdout. 3034 [Joe Orton] 3035 3036 *) mod_disk_cache: Remove a bunch of non-implemented garbage collection 3037 and cache size directives that are now available through htcacheclean. 3038 [Justin Erenkrantz] 3039 3040 *) Add htcacheclean to support/ for assistance with mod_disk_cache. 3041 [Andreas Steinmetz] 3042 3043 *) mod_authnz_ldap: Added the directive "Requires ldap-filter" that 3044 allows the module to authorize a user based on a complex LDAP 3045 search filter. [Brad Nicholes] 3046 3047 *) mod_usertrack: Run the fixups hook before other modules. 3048 PR 29755. [Paul Querna] 3049 3050 *) Allow mod_authnz_ldap authorization functionality to be used 3051 without requiring the user to also be authenticated through 3052 mod_authnz_ldap. This allows other authentication modules to 3053 take advantage of LDAP authorization only [PR 28253] 3054 [Jari Ahonen jah progress.com, Brad Nicholes] 3055 3056 *) Log the client IP address when an error occurs disabling nagle on a 3057 connection, but log at a severity of debug since this error 3058 generally means that the connection was dropped before data was 3059 sent. Log the client IP address when reporting errors in the core 3060 output filter. [Jeff Trawick] 3061 3062 *) core: Add a warning message if the request line read fails. 3063 [Paul Querna] 3064 3065 *) mod_rewrite: Removed the MaxRedirects option in favor of the 3066 core LimitInternalRecursion directive. [André Malo] 3067 3068 *) mod_info: Added listing of the Request Hooks and added more build 3069 information like 'httpd -V' contains. Changed output to XHTML. 3070 [Paul Querna] 3071 3072 *) mod_info: Rewrote config tree walk using a recursive function. 3073 Added ?config option. Added printout of config filename and line numbers. 3074 [Rici Lake <rici ricilake.net>, Paul Querna] 3075 3076 *) mod_proxy: Fix type error that prevents proxy-sendchunks from working. 3077 [Justin Erenkrantz] 3078 3079 *) mod_proxy: Fix data corruption by properly setting aside buckets. 3080 [Justin Erenkrantz] 3081 3082 *) mod_proxy: If a request has a blank body and has a 0 Content-Length 3083 headers, pass that to the proxy. [Justin Erenkrantz] 3084 3085 *) Recognize QSA flag in mod_rewrite again. 3086 [Jan Kratochvil <rcpt-dev.AT.httpd.apache.org jankratochvil.net>] 3087 3088 *) Restructured mod_auth_ldap to fit the new authentication model. 3089 The module is now called authnz_ldap and has been moved out of 3090 the modules/experimental area and into modules/aaa with the other 3091 auth modules. Both the authn_ldap provider and the authz_ldap 3092 handler are contained within the authnz_ldap module. The 3093 authz_ldap handler introduces 3 new "requires" values for handling 3094 authorization. These handlers are ldap-user, ldap-group and 3095 ldap-dn. [Brad Nicholes] 3096 3097 *) Fix some compiler warnings in proxy 3098 [Geoffrey Young <geoff@modperlcookbook.org>] 3099 3100 *) mod_ssl: Add SSL_CLIENT_V_REMAIN variable, representing the 3101 number of days until the client cert expires. [Joe Orton] 3102 3103 *) Add test_config hook, run only if httpd is invoked using -t. 3104 [Joe Orton] 3105 3106 *) Improve error handling for corrupted pid files. [Jeff Trawick] 3107 3108 *) mod_proxy.c and proxy_util.c: Enable compiling on 2.0-HEAD 3109 (for backwards compatibility): 3110 Avoids mod_ssl.h (not included in 2.0-HEAD) and 3111 use apr_socket_create_ex for 0.9.x 3112 [Mladen Turk] 3113 3114 *) Added proxy_ajp.c module for proxy support to ajp:// backends. 3115 [Jean Frederic Clere] 3116 3117 *) Fixes the build of proxy on Windows. Since the proxy_module is declared 3118 as extern using AP_MODULE_DECLARE_DATA that expands to dllexport, there 3119 is a LNK2001 error when building proxy_http. [Mladen Turk] 3120 3121 *) Remove LDAP toolkit specific code from util_ldap and mod_auth_ldap. 3122 [Graham Leggett] 3123 3124 *) Remove deprecated/removed APR_STATUS_IS_SUCCESS(). [Justin Erenkrantz] 3125 3126 *) perchild MPM: Fix thread safety problem in the use of longjmp(). 3127 [Tsuyoshi SASAMOTO <nazonazo super.win.ne.jp>] 3128 3129 *) Add load balancer support to the scoreboard in preparation for 3130 load balancing support in mod_proxy. [Mladen Turk] 3131 3132 *) mod_nw_ssl: Added the directive NWSSLUpgradeable to mod_nw_ssl to 3133 allow a non-secure connection to be upgraded to secure connections 3134 [Brad Nicholes] 3135 3136 *) core: Add Options= syntax to AllowOverride to specify which options 3137 may be overridden in .htaccess files. PR 29310. 3138 [Tom Alsberg <alsbergt cs.huji.ac.il>, Paul Querna] 3139 3140 *) ab: Handle long URLs with an error instead of an buffer overflow. 3141 PR 28204. [Erik Weide <erik.weidel mplus-technologies.de>, Paul Querna] 3142 3143 *) mod_so, core: Add new command line options to print all loaded 3144 modules. '-t -D DUMP_MODULES' and '-M' will show all static 3145 and shared modules as loaded from the configuration file. 3146 [Paul Querna] 3147 3148 *) mod_autoindex: Add ShowForbidden to IndexOptions to list files 3149 that are not shown because the subrequest returned 401 or 403. 3150 PR 10575. [Paul Querna] 3151 3152 *) mod_headers: implement "Early" processing option in post_read_request 3153 to enable Header and RequestHeader directives to be used to set up 3154 testcases for pre-fixups request phases [Nick Kew] 3155 3156 *) mod_proxy: multiple bugfixes, principally support cookies in 3157 ProxyPassReverse, and don't canonicalise URL passed to backend. 3158 Documentation correspondingly updated. [Nick Kew <nick webthing.com>] 3159 3160 *) mod_deflate: support gzip flags in inflate_out_filter 3161 [Nick Kew <nick webthing.com>] 3162 3163 *) Drop the ErrorHeader directive which turned out to be a misnomer. 3164 Instead there's a new optional flag for the Header directive 3165 ('always'), which keeps the former ErrorHeader functionality. 3166 [André Malo] 3167 3168 *) mod_deflate: Don't deflate responses with zero length 3169 e.g. proxied 304's [Allan Edwards] 3170 3171 *) <IfModule> now recognizes the module identifier in addition to the 3172 file name. PR 29003. [Edward Rudd <eddie omegaware.com>, André Malo] 3173 3174 *) mod_ssl: Add "SSLHonorCipherOrder" directive to enable the 3175 OpenSSL 0.9.7 flag which uses the server's cipher order rather 3176 than the client's. PR 28665. 3177 [Jim Schneider <jschneid netilla.com>] 3178 3179 *) mod_ssl: Drop support for the CompatEnvVars argument to 3180 SSLOptions, which was never actually implemented in 2.0. 3181 [Joe Orton] 3182 3183 *) Fix bug in mod_deflate that unconditionally sent deflate'd output 3184 even when Accept-Encoding is not present. [Justin Erenkrantz] 3185 3186 *) Pass environment variables through to piped loggers and start 3187 them via the shell, resolving regressions since 1.3. PR 28815 3188 [Ken Coar, Jeff Trawick] 3189 3190 *) External rewrite map responses are no longer limited to 2048 3191 bytes. [André Malo] 3192 3193 *) Proxy server was deleting cookies that Apache had already 3194 assigned if the origin server had set any cookies. PR 27023. 3195 [Jim Jagielski] 3196 3197 *) Removed old and unmaintained ap_add_named_module API and changed 3198 the following APIs to return an error instead of hard exiting: 3199 ap_add_module, ap_add_loaded_module, ap_setup_prelinked_modules, 3200 and ap_process_resource_config. [André Malo] 3201 3202 *) mod_headers: Allow %% in header values to represent a literal %. 3203 [André Malo] 3204 3205 *) mod_headers: Allow env clauses also for 'echo' and 'unset' actions. 3206 [André Malo] 3207 3208 *) mod_headers: Allow 'echo' also for ErrorHeaders. [André Malo] 3209 3210 *) mod_deflate: New option for DEFLATE output file (force-gzip), 3211 new output filter 'INFLATE' for uncompressing responses. 3212 [Nick Kew <Nick at WebThing dot com>, Ian Holsman] 3213 3214 *) Added new module mod_version, which provides version dependent 3215 configuration containers. [André Malo] 3216 3217 *) mod_log_config now logs all Set-Cookie headers if the %{Set-Cookie}o 3218 format is used. PR 27787. [André Malo] 3219 3220 *) Allow Digest providers to return AUTH_DENIED to propagate a 401 3221 status and terminate the provider chain prior to checking the password. 3222 [Geoffrey Young] 3223 3224 *) mod_cgid: Don't allow Scriptsock to be specified inside VirtualHost; 3225 Don't place script socket inside default server root instead of 3226 actual server root. PR 27886. [Jeff Trawick] 3227 3228 *) mod_proxy: Fix handling of non-200 success status codes when 3229 "ProxyErrorOverride On" is configured. PR 20183. 3230 [Marcus Janson <marcus.janson tre.se>, Joe Orton] 3231 3232 *) Threaded MPMs for Unix and Win32: Add support for ThreadStackSize 3233 directive (previously NetWare-only) to override default thread 3234 stack size for threads which handle client connections. Required 3235 for some third-party modules on platforms with small default 3236 thread stack size. [Jeff Trawick] 3237 3238 *) minor mod_auth_basic and mod_auth_digest sync. mod_auth_basic 3239 now populates r->user with the (possibly unauthenticated) user, 3240 and mod_auth_digest returns 500 when a provider returns 3241 AUTH_GENERAL_ERROR. 3242 [Geoffrey Young] 3243 3244 *) The whole codebase was relicensed and is now available under 3245 the Apache License, Version 2.0 (http://www.apache.org/licenses). 3246 [Apache Software Foundation] 3247 3248 *) Delete some make-generated files in the server directory during 3249 "make clean" processing. PR 26552. [Jeff Trawick] 3250 3251 *) Add core version query function (ap_get_server_revision) and 3252 accompanying ap_version_t structure (minor MMN bump). 3253 [André Malo] 3254 3255 *) mod_rewrite: EOLs sent by external rewritemaps are now consumed 3256 as whole. That way, on systems with more than one EOL character 3257 rewritemap programs no longer need to switch stdout to binary 3258 mode. PR 25635. [André Malo] 3259 3260 *) mod_rewrite: Introduce the ability to force a content handler via 3261 the [handler=...] flag. [André Malo] 3262 3263 *) mod_rewrite: Introduce the RewriteCond -x check, which returns 3264 true if the pattern is a file with execution permissions. 3265 [André Malo] 3266 3267 *) mod_rewrite: Allow proxying and RewriteRules in directory context 3268 for subrequests. PR 14648, 15114. [André Malo] 3269 3270 *) mod_rewrite: Allow setting of any valid HTTP response code. 3271 PR 25917. [André Malo] 3272 3273 *) mod_rewrite: Cookie creation now works locale independent. 3274 [André Malo] 3275 3276 *) mod_ssl: Add support for distributed session cache using 'distcache'. 3277 [Geoff Thorpe <geoff geoffthorpe.net>] 3278 3279 *) mod_dav: Disallow requests with an unescaped hash character in 3280 the Request-URI. PR 21779. [Amit Athavale <amit_athavale lycos.com>] 3281 3282 *) mod_proxy with ProxyErrorOverride On in a reverse-proxy configuration 3283 attaches a body to the 302 response and a wrong Content-Length header. 3284 PR: 22951 [Ermanno Scaglione scaglione ..at.. starnetone.de] 3285 3286 *) Bring ErrorHeader concept forward from 1.3, so that response 3287 header fields can be set for return even on errors or external 3288 redirects. [Ken Coar] 3289 3290 *) Fix <Limit> and <LimitExcept> parsing to require a closing '>' 3291 in the initial container. PR 25414. 3292 [Geoffrey Young <geoff apache.org>] 3293 3294 *) Clean up httpd -V output: Instead of displaying the MPM source 3295 directory, display the MPM name and some MPM properties. 3296 [Geoffrey Young <geoff apache.org>] 3297 3298 *) mod_ssl/mod_status: Re-enable support for output of SSL session 3299 cache information in server-status page. [Joe Orton] 3300 3301 *) mod_ssl: Remove the shmht session cache, shmcb should be used 3302 instead. [Joe Orton] 3303 3304 *) mod_logio: Account for some bytes handed to the network layer prior to 3305 dropped connections. [Jeff Trawick] 3306 3307 *) mod_autoindex: new directive IndexStyleSheet 3308 [Tyler Riddle <triddle_1999 yahoo.com>, Paul Querna <chip force-elite.com>] 3309 3310 *) Fix uninitialized gprof directory name in prefork MPM. PR 24450. 3311 [Chris Knight <Christopher.D.Knight nasa.gov>] 3312 3313 *) Log an error when requests for URIs which fail to map to a valid 3314 filesystem name are rejected with 403. [Jeff Trawick] 3315 3316 *) Switch to APR 1.0 API. 3317 3318 *) Major overhaul of mod_include's filter parser. The new parser code 3319 is expected to be more robust and should catch all of the edge cases 3320 that were not handled by the previous one. This includes a binary 3321 incompatible change of mod_include's external API. [André Malo] 3322 3323 *) mod_rewrite: Allow forced mimetypes [T=...] to get expanded. 3324 PR 14223. [André Malo] 3325 3326 *) mod_rewrite: Fix LA-U and LA-F lookups in directory context. Previously 3327 the current rewrite state was just used as lookup path, which lead to 3328 strange and often useless results. Related to PR 8493. [André Malo] 3329 3330 *) Change Listen directive to bind to all addresses when a hostname is 3331 not specified. [Justin Erenkrantz] 3332 3333 *) Correct failure with Listen directives on machines with IPv6 enabled. 3334 [Colm MacCárthaigh <colm stdlib.net>, Justin Erenkrantz] 3335 3336 *) Fix a link failure in mod_ssl when the OpenSSL libraries contain 3337 the ENGINE functions but the engine header files are missing. 3338 [Cliff Woolley] 3339 3340 *) mod_rewrite: RewriteRules in server context using the force 3341 type feature [T=...] no longer disable MultiViews. [André Malo] 3342 3343 *) mod_rewrite: Allow piped rewrite logs to be relative to ServerRoot. 3344 [André Malo] 3345 3346 *) mod_authz_groupfile: Strip trailing spaces of group names. This 3347 hopefully saves some hours of searching for typos. PR 12863. 3348 [André Malo] 3349 3350 *) mod_actions: Propagate the handler name to the action script via 3351 the REDIRECT_HANDLER environment variable. [André Malo] 3352 3353 *) mod_actions: Introduce the "virtual" modifier to the Action directive, 3354 which allows the use of handlers for virtual locations. PR 8431. 3355 [André Malo] 3356 3357 *) mod_speling: Recognize AcceptPathInfo setting for the particular 3358 location. Default is to reject path information. PR 21059. 3359 [André Malo] 3360 3361 *) mod_ext_filter: Add the ability to filter request bodies. 3362 [Philipp Reisner <philipp.reisner linbit.com>] 3363 3364 *) Fix some broken log messages in WinNT MPM. 3365 [Juan Rivera <Juan.Rivera citrix.com>] 3366 3367 *) prefork MPM: Use the right permissions for the directory created 3368 for gprof support. [Jim Carlson <jcarlson jnous.com>] 3369 3370 *) Fix a compile failure with recent OpenSSL and picky compilers 3371 (e.g., OpenSSL 0.9.7a and xlc_r on AIX). [Jeff Trawick] 3372 3373 *) OpenSSL headers should be included as "openssl/ssl.h", and not rely on 3374 the INCLUDE path to be defined properly. 3375 PR 11310. [Geoff Thorpe <geoff geoffthorpe.net>] 3376 3377 *) Modify APACHE_CHECK_SSL_TOOLKIT to detect SSL-C. [Madhusudan Mathihalli] 3378 3379 *) Replace the APACHE_CHECK_SSL_TOOLKIT method with a cleaner one, using 3380 autoconf tools (AC_CHECK_HEADER, AC_CHECK_LIB etc). 3381 [Geoff Thorpe <geoff geoffthorpe.net>] 3382 3383 *) change directive name from 'compressionlevel' to 'deflatecompressionlevel' 3384 [Ian Holsman, André Malo] 3385 3386 *) mod_negotiation: quality values are now parsed independent from 3387 the current locale. level values are now really parsed as integers. 3388 PR 17564. [André Malo] 3389 3390 *) Extend mod_negotiation to evaluate the environment variables 3391 no-gzip and gzip-only-text/html the same way as mod_deflate does. 3392 [André Malo] 3393 3394 *) mod_rewrite: Fix some problems reporting errors with mapping 3395 programs (RewriteMap prg:/something). [Jeff Trawick] 3396 3397 *) Return 413 if chunk-ext-header is too long rather than reading from 3398 the truncated line. PR 15857. [Justin Erenkrantz] 3399 3400 *) Allow restart of httpd to occur even with syntax errors in the config 3401 file. PR 16813. [Justin Erenkrantz] 3402 3403 *) Use APR_LAYOUT instead of APACHE_LAYOUT in configure. PR 15679. 3404 [Justin Erenkrantz] 3405 3406 *) Remove files on 'make distclean' that should be. PR 15592. 3407 [Justin Erenkrantz] 3408 3409 *) Allow apachectl to perform status with links and elinks as well. 3410 [Justin Erenkrantz] 3411 3412 *) mod_log_config change optional hook to return previous handler 3413 [Ian Holsman] 3414 3415 *) Forward port of mod_actions' ability to handle arbitrary methods 3416 with the Script directive. [André Malo] 3417 3418 *) Let suexec send a message to stderr, if it failed or its policy 3419 was violated. This message appears in the error log and allows 3420 for easier debugging. PR 5381, 7638, 8255, 10773. [André Malo] 3421 3422 *) Modify buildconf to copy all required files into httpd's tree. 3423 [Thom May <thom planetarytramp.net>] 3424 3425 *) Allow mod_dav to do weak entity comparison functions. 3426 [Justin Erenkrantz] 3427 3428 *) Move RFC 1413 ident requests from core to new module mod_ident. 3429 [André Malo] 3430 3431 *) Add mod_authz_owner - a forward port of "Require file-owner" 3432 and "Require file-group", which was already present in version 3433 1.3.21. [André Malo] 3434 3435 *) Add mod_dav_lock - a generic subset of the DAV locking implementation. 3436 [Justin Erenkrantz] 3437 3438 *) Replace some of the mutex locking in the worker MPM with 3439 atomic operations for higher concurrency. [Brian Pane] 3440 3441 *) Allow 'make depend' to work with non-GCC compilers. 3442 [Justin Erenkrantz] 3443 3444 *) If an httpd.conf has commented out AddModule directives, 3445 apxs -i -a will add an un-commented AddModule directive for 3446 the new module, which breaks the config. 3447 PR: 11212 [Joe Orton] 3448 3449 *) Fix mod_proxy handling of filtered input bodies. [Justin Erenkrantz] 3450 3451 *) Move the check of the Expect request header field after the hook 3452 for ap_post_read_request, since that is the only opportunity for 3453 modules to handle Expect extensions. [Justin Erenkrantz] 3454 3455 *) Rewrite of aaa modules to an authn/authz model. 3456 [Dirk-Willem van Gulik, Justin Erenkrantz] 3457 3458 [Apache 2.1.0-dev includes those bug fixes and changes with the 3459 Apache 2.0.xx tree as documented, and except as noted, below.] 3460 3461 Changes with Apache 2.0.x and later: 3462 3463 *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.0.x/CHANGES?view=markup 3464