]> granicus.if.org Git - apache/blob - CHANGES
Fix potential proxy segfault
[apache] / CHANGES
1                                                         -*- coding: utf-8 -*-
2 Changes with Apache 2.3.0
3
4   *) mod_proxy_connect: avoid segfault on DNS lookup failure.
5      PR 40756 [Trevin Beattie <tbeattie boingo.com>]
6
7   *) mod_proxy: enable Ignore Errors option on ProxyPass Status.
8      PR 43167 [Francisco Gimeno <kikov kikov.org>
9
10   *) mod_proxy_http: Don't try to read body of a HEAD request before
11      responding.
12      PR 41644 [Stuart Children <stuart terminus.co.uk>]
13
14   *) mod_autoindex: Add in Type and Charset options to
15      IndexOptions directive. This allows the admin to explicitly
16      set the content-type and charset of the generated page.
17      [Jim Jagielski]
18
19   *) mime.types: Many updates to sync with IANA registry and common
20      unregistered types that the owners refuse to register.  Admins
21      are encouraged to update their installed mime.types file.
22      PR: 35550, 37798, 39317, 31483 [Roy T. Fielding]
23
24   *) log core: ensure we use a special pool for stderr logging, so that
25      the stderr channel remains valid from the time plog is destroyed,
26      until the time the open_logs hook is called again.  [William Rowe]
27
28   *) main core: Emit errors during the initial apr_app_initialize()
29      or apr_pool_create() (when apr-based error reporting is not ready).
30      [William Rowe, Jeff Trawick]
31
32   *) mpm_winnt: Prevent the parent-child pipe from leaking into other
33      spawned processes, and ensure we have a /Device/null handle for
34      stdout when running as-a-service.  [William Rowe]
35
36   *) log core: fix the new piped logger case where we couldn't connect 
37      the replacement stderr logger's stderr to the NULL stdout stream.  
38      Continue in this case, since the previous alternative of no error 
39      logging at all (/dev/null) is far worse. [William Rowe]
40
41   *) mod_ldap: Avoid possible crashes, hangs, and busy loops due to
42      improper merging of the cache lock in vhost config
43      PR 43164 [Eric Covener]
44
45   *) mod_negotiation: preserve Query String in resolving a type map
46      PR 33112 [Jørgen Thomsen <apache jth.net>, Nick Kew]
47
48   *) mod_deflate: fix content_encoding detection in inflate_out filter
49      when it's not in response headers table.
50      PR 42993 [Nick Kew]
51
52   *) mod_proxy: Improve network performance by setting APR_TCP_NODELAY
53      (disable Nagle algorithm) on sockets if implemented.
54      PR 42871 [Christian BOITEL <christian_boitel yahoo.fr>, Jim Jagielski]
55
56   *) mod_info: mod_info outputs invalid XHTML 1.0 transitional.
57      PR 42847 [Rici Lake <rici ricilake.net>]
58
59   *) mime.types: add registered Apple installer type
60      PR 40379 [Peter Bierman <pmb+apache apple.com>]
61    
62   *) mod_ldap, mod_authnzldap: Add support for nested groups (i.e. the ability
63      to authorize an authenticated user via a "require ldap-group X" directive
64      where the user is not in group X, but is in a subgroup contained in X.
65      PR 42891 [Paul J. Reder]
66
67   *) mod_deflate: don't try to process metadata buckets as data.  what should
68      have been a 413 error was logged as a 500 and a blank screen appeared
69      at the browser.
70      [Greg Ames, Ruediger Pluem]
71
72   *) SECURITY: CVE-2007-3304 (cve.mitre.org)
73      prefork, worker, event MPMs: Ensure that the parent process cannot
74      be forced to kill processes outside its process group.  [Joe Orton]
75
76   *) SECURITY: CVE-2006-5752 (cve.mitre.org)
77      mod_status: Fix a possible XSS attack against a site with a public
78      server-status page and ExtendedStatus enabled, for browsers which
79      perform charset "detection".  Reported by Stefan Esser.  [Joe Orton]
80
81   *) Event MPM: Add support for running under mod_ssl, by reverting to the
82      Worker MPM behaviors, when run under an input filter that buffers
83      its own data. [Paul Querna]
84
85   *) mod_ssl: Add support for caching SSL Sessions in memcached. [Paul Querna]
86
87   *) SECURITY: CVE-2007-1862 (cve.mitre.org)
88      mod_mem_cache: Copy headers into longer lived storage; header names and 
89      values could previously point to cleaned up storage
90      PR 41551 [Davi Arnaut <davi haxent.com.br>]
91
92   *) mod_cache: Do not set Date or Expires when they are missing from
93      the original response or are invalid.  [Justin Erenkrantz]
94
95   *) mod_cache: Correctly handle HEAD requests on expired cache content.
96      PR 41230.  [Niklas Edmundsson]
97
98   *) mod_proxy: Added ProxyPassMatch directive, which is similar
99      to ProxyPass but takes a regex local path prefix. [Jim Jagielski]
100
101   *) mod_so: Solve dev's confusion by reporting expected/seen module
102      magic signatures when failing with a 'garbled' message, and solve
103      user's confusion by pointing out 'perhaps compiled for a different
104      version of apache?'.  [William Rowe]
105
106   *) mod_substitute: Added a new experimental output filter, which
107      performs inline response content pattern matching (including
108      regex) and substitution.  [Jim Jagielski]
109
110   *) mod_ssl: Version reporting update; displays 'compiled against'
111      Apache and build-time SSL Library versions at loglevel [info],
112      while reporting the run-time SSL Library version in the server
113      info tags.  Helps to identify a mod_ssl built against one flavor
114      of OpenSSL but running against another (also adds SSL-C version
115      number reporting.)  [William Rowe]
116
117   *) core: Change etag generation to produce identical results on 
118      32-bit and 64-bit platforms.  PR 40064.  [Joe Orton]
119
120   *) ab: Add -r option to continue after socket receive errors. 
121      [Filip Hanik <devlist hanik.com>]
122
123   *) mod_ldap: Fix the search limit parameter to ldap_search_ext_s()
124      for SDKs that define LDAP_NO_LIMIT to something other than -1.
125      [David Jones <oscaremma gmail.com>]
126
127   *) mod_dbd: Introduce configuration groups to allow inheritance by virtual
128      hosts of database configurations from the main server.  Determine the
129      minimal set of distinct configurations and share connection pools
130      whenever possible.  Allow virtual hosts to override inherited SQL
131      statements.  PR 41302.  [Chris Darroch]
132
133   *) core: Fix broken chunk filtering that causes all non blocking reads to be
134      converted into blocking reads.  PR 41056. [Jean-Frederic Clere, Jim Jagielski]
135
136   *) apxs: Enhance -q flag to print all known variables and their values
137      when invoked without variable name(s). 
138      [William Rowe, Sander Temme]
139
140   *) mod_dbd: Create memory sub-pools for each DB connection and close
141      DB connections in a pool cleanup function.  Ensure prepared statements
142      are destroyed before DB connection is closed.  When using reslists,
143      prevent segfaults when child processes exit, and stop memory leakage
144      of ap_dbd_t structures.  Avoid use of global s->process->pool, which
145      isn't destroyed by exiting child processes in most multi-process MPMs.
146      PR 39985.  [Chris Darroch, Nick Kew]
147
148   *) apxs: Eliminate run-time check for mod_so.  PR 40653.
149      [David M. Lee <dmlee crossroads.com>]
150
151   *) beos MPM: Create pmain pool and run modules' child_init hooks when
152      entering ap_mpm_run(), then destroy pmain when exiting ap_mpm_run().
153      [Chris Darroch]
154
155   *) netware MPM: Destroy pmain pool when exiting ap_mpm_run() so that
156      cleanups registered in modules' child_init hooks are performed.
157      [Chris Darroch]
158
159   *) mod_dbd: Handle error conditions in dbd_construct() properly.
160      Simplify ap_dbd_open() and use correct arguments to apr_dbd_error()
161      when non-threaded.  Register correct cleanup data in non-threaded
162      ap_dbd_acquire() and ap_dbd_cacquire().  Clean up configuration data
163      and merge function.  Use ap_log_error() wherever possible.
164      [Chris Darroch, Nick Kew]
165
166   *) core: Do not replace a Date header set by a proxied backend server.
167      PR 40232. [Ruediger Pluem]
168
169   *) mod_proxy: Ensure that at least scheme://hostname[:port] matches between
170      worker and URL when searching for the best fitting worker for a given URL.
171      PR 40910. [Ruediger Pluem]
172
173   *) mod_cache: Remove expired content from cache that cannot be revalidated.
174      PR 30370. [Ruediger Pluem]
175
176   *) mod_dbd: Stash DBD connections in request_config of initial request
177      only, or else sub-requests and internal redirections may cause
178      entire DBD pool to be stashed in a single HTTP request.  [Chris Darroch]
179
180   *) mod_proxy: Add a missing assignment in an error checking code path.
181      PR 40865. [Andrew Rucker Jones <arjones simultan.dyndns.org>]
182
183   *) mod_mem_cache: Increase the minimum and default value for
184      MCacheMinObjectSize from 0 to 1, as a MCacheMinObjectSize of 0 does not
185      make sense and leads to a division by zero.  PR 40576.
186      [Xuekun Hu <xuekun.hu gmail.com>]
187
188   *) Fix issue which could cause error messages to be written to access logs
189      on Win32.  PR 40476.  [Tom Donovan <Tom.Donovan acm.org>]
190
191   *) The LockFile directive, which specifies the location of
192      the accept() mutex lockfile, is deprecated. Instead, the
193      AcceptMutex directive now takes an optional lockfile
194      location parameter, ala SSLMutex. [Jim Jagielski]
195
196   *) mod_authn_dbd: Export any additional columns queried in the SQL select
197      into the environment with the name AUTHENTICATE_<COLUMN>. This brings
198      mod_authn_dbd behaviour in line with mod_authnz_ldap. [Graham Leggett]
199
200   *) mod_dbd: Key the storage of prepared statements on the hex string
201      value of server_rec, rather than the server name, as the server name
202      may change (eg when the server name is set) at any time, causing
203      weird behaviour in modules dependent on mod_dbd. [Graham Leggett]
204
205   *) mod_proxy_fcgi: Added win32 build. [Mladen Turk]
206
207   *) sendfile_nonblocking() takes the _brigade_ as an argument, gets 
208      the first bucket from the brigade, finds it not to be a FILE
209      bucket and barfs. The fix is to pass a bucket rather than a brigade.
210      [Niklas Edmundsson <nikke acc.umu.se>]
211
212   *) mod_rewrite: support rewritemap by SQL query [Nick Kew]
213
214   *) ap_get_server_version() has been removed.  Third-party modules must 
215      now use ap_get_server_banner() or ap_get_server_description().
216      [Jeff Trawick]
217
218   *) All MPMs: Introduce a check_config phase between pre_config and
219      open_logs, to allow modules to review interdependent configuration
220      directive values and adjust them while messages can still be logged
221      to the console.  Handle relevant MPM directives during this phase
222      and format messages for both the console and the error log, as
223      appropriate.  [Chris Darroch]
224
225   *) mod_proxy: don't URLencode tilde in path component
226      [Stijn Hoop <stijn sandcat.nl>]
227
228   *) mpm_winnt: Fix return values from wait_for_many_objects.
229      The return value is index to the signaled thread in the
230      creted_threads array. We can not use WAIT_TIMEOUT because
231      his value is defined as 258, thus limiting the MaxThreads
232      to that value. [Mladen Turk]
233
234   *) core: Do not allow internal redirects like the DirectoryIndex of mod_dir
235      to circumvent the symbolic link checks imposed by FollowSymLinks and
236      SymLinksIfOwnerMatch. [Nick Kew, Ruediger Pluem, William Rowe]
237
238   *) mod_proxy: Support environment variable interpolation in reverse
239      proxying directives. [Nick Kew]
240
241   *) core: Add the filename of the configuration file to the warning message
242      about the useless use of AllowOverride. PR 39992.
243      [Darryl Miles <darryl darrylmiles.org>]
244
245   *) New SSLLogLevelDebugDump [ None (default) | IO (not bytes) | Bytes ]
246      configures the I/O Dump of SSL traffic, when LogLevel is set to Debug.
247      The default is none as this is far greater debugging resolution than 
248      the typical administrator is prepared to untangle.  [William Rowe]
249
250   *) mod_disk_cache: If possible, check if the size of an object to cache is
251      within the configured boundaries before actually saving data.
252      [Niklas Edmundsson <nikke acc.umu.se>]
253
254   *) mod_cache: Convert all values to seconds before comparing them when
255      checking whether to send a Warning header for a stale response.
256      PR 39713. [Owen Taylor <otaylor redhat.com>]
257
258   *) mod_disk_cache: Delete temporary files if they cannot be renamed to their
259      final name. [Davi Arnaut <davi haxent.com.br>]
260
261   *) Worker and event MPMs: Remove improper scoreboard updates which were
262      performed in the event of a fork() failure.  [Chris Darroch]
263
264   *) Add support for fcgi:// proxies to mod_rewrite.
265      [Markus Schiegl <ms schiegl.com>]
266
267   *) Remove incorrect comments from scoreboard.h regarding conditional
268      loading of worker_score structure with mod_status, and remove unused
269      definitions relating to old life_status field.
270      [Chris Darroch <chrisd pearsoncmg.com>]
271
272   *) Remove allocation of memory for unused array of lb_score pointers
273      in ap_init_scoreboard().  [Chris Darroch <chrisd pearsoncmg.com>]
274
275   *) Add mod_proxy_fcgi, a FastCGI back end for mod_proxy.
276      [Garrett Rooney, Jim Jagielski, Paul Querna]
277
278   *) Event MPM: Fill in the scoreboard's tid field. PR 38736.
279      [Chris Darroch <chrisd pearsoncmg.com>]
280
281   *) mod_charset_lite: Remove Content-Length when output filter can 
282      invalidate it.  Warn when input filter can invalidate it.
283      [Jeff Trawick]
284
285   *) mod_ssl: Fix spurious hostname mismatch warning for valid
286      wildcard certificates.  PR 37911.  [Nick Burch <nick torchbox.com>]
287
288   *) Authz: Add the new module mod_authn_core that will provide common
289      authn directives such as 'AuthType', 'AuthName'.  Move the directives
290      'AuthType' and 'AuthName' out of the core module and merge mod_authz_alias 
291      into mod_authn_core. [Brad Nicholes]
292
293   *) Authz: Move the directives 'Order', 'Allow', 'Deny' and 'Satisfy' 
294      into the new module mod_access_compat which can be loaded to provide 
295      support for these directives.
296      [Brad Nicholes]
297
298   *) Authz: Move the 'Require' directive from the core module as well as 
299      add the directives '<SatisfyAll>', '<SatisfyOne>', '<RequireAlias>' 
300      and 'Reject' to mod_authz_core. The new directives introduce 'AND/OR' 
301      logic into the authorization processing. [Brad Nicholes]
302
303   *) Authz: Add the new module mod_authz_core which acts as the 
304      authorization provider vector and contains common authz 
305      directives. [Brad Nicholes]
306
307   *) Authz: Renamed mod_authz_dbm authz providers from 'group' and 
308      'file-group' to 'dbm-group' and 'dbm-file-group'. [Brad Nicholes]
309
310   *) Authz: Added the new authz providers 'env', 'ip', 'host', 'all' to handle
311      host-based access control provided by mod_authz_host and invoked 
312      through the 'Require' directive. [Brad Nicholes]
313
314   *) Authz: Convert all of the authz modules from hook based to 
315      provider based. [Brad Nicholes]
316
317   *) mod_cache: Add CacheMinExpire directive to set the minimum time in
318      seconds to cache a document.
319      [Brian Akins <brian.akins turner.com>, Ruediger Pluem]
320
321   *) mod_authz_dbd: SQL authz with Login/Session support [Nick Kew]
322
323   *) Fix typo in ProxyStatus syntax error message.
324      [Christophe Jaillet <christophe.jaillet wanadoo.fr>]
325
326   *) Asynchronous write completion for the Event MPM.  [Brian Pane]
327
328   *) Added an End-Of-Request bucket type.  The logging of a request and
329      the freeing of its pool are now done when the EOR bucket is destroyed.
330      This has the effect of delaying the logging until right after the last
331      of the response is sent; ap_core_output_filter() calls the access logger
332      indirectly when it destroys the EOR bucket.  [Brian Pane]
333
334   *) Rewrite of logresolve support utility: IPv6 addresses are now supported
335      and the format of statistical output has changed. [Colm MacCarthaigh]
336
337   *) Rewrite of ap_coreoutput_filter to do nonblocking writes  [Brian Pane]
338
339   *) Added new connection states for handler and write completion
340      [Brian Pane]
341
342   *) mod_cgid: Refuse to work on Solaris 10 due to OS bugs.  PR 34264.
343      [Justin Erenkrantz]
344
345   *) Teach mod_ssl to use arbitrary OIDs in an SSLRequire directive,
346      allowing string-valued client certificate attributes to be used for
347      access control, as in: SSLRequire "value" in OID("1.3.6.1.4.1.18060.1")
348      [Martin Kraemer, David Reid]
349
350 Changes with Apache 2.2.5
351
352   *) ApacheMonitor: Fix Windows Vista detection. [Mladen Turk]
353
354   *) mod_deflate: fix protocol handling in deflate input filter
355      PR 23287 [Nick Kew]
356
357   *) mod_proxy: fix buffer overflow issue
358      PR 41144 [Davi Arnaut]
359
360   *) mime.types: add Registered Javascript/ECMAScript MIME types (RFC4329)
361      PR 40299 [Dave Hodder <dmh dmh.org.uk>]
362
363   *) mod_filter: fix integer comparisons in dispatch rules
364      PR 41835 [Nick Kew]
365
366   *) mod_filter: fix merging of ! and = in FilterChain
367      PR 42186 [Issac Goldstand <margol beamartyr.net>]
368  
369   *) mod_cache: Let Cache-Control max-age set the expiration of the cached
370      representation if Expires is not set.  [Justin Erenkrantz]
371
372   *) mod_disk_cache: Allow Vary'd responses to be refreshed properly.
373      [Justin Erenkrantz]
374
375   *) mod_cache: Allow caching of requests with query arguments when
376      Cache-Control max-age is explicitly specified.  [Justin Erenkrantz]
377
378   *) mod_proxy: Print the correct error message for erroneous configured
379      ProxyPass directives. PR 40439. [serai lans-tv.com]
380
381   *) mod_so: Provide more helpful LoadModule feedback when an error occurs.
382      [William Rowe]
383
384   *) mod_alias: Accept path components (URL part) in Redirects.  PR 35314.
385      [Nick Kew]
386
387   *) mod_headers: Allow % at the end of a Header value.  PR 36609.
388      [Nick Kew, Ruediger Pluem]
389
390   *) mod_cache: Use the same cache key throughout the whole request processing
391      to handle escaped URLs correctly.  PR 41475. [Ruediger Pluem]
392
393   *) mod_cache: Add CacheIgnoreQueryString directive.  PR 41484.
394      [Fredrik Widlund <fredrik.widlund qbrick.com>]
395
396   *) mod_cache: While serving a cached entity ensure that filters that have
397      been applied to this cached entity before saving it to the cache are not
398      applied again. PR 40090. [Ruediger Pluem]
399
400   *) mod_cache: Correctly cache objects whose URL query string has been
401      modified by mod_rewrite. PR 40805. [Ruediger Pluem]
402
403   *) mod_proxy_http: Change handling of ProxyErrorOverride such that
404      3xx responses are no longer over-ridden (handling of 4xx and 5xx
405      responses is unchanged).  PR 39245.
406      [Jeff Trawick, Bart van der Schans <schans hippo.nl>]
407
408   *) htdbm: Enable crypt support on platforms with crypt() but not
409      <crypt.h>, such as z/OS. [David Jones <oscaremma gmail.com>]
410
411   *) mod_ssl: initialize thread locks before initializing the hardware
412      acceleration library, so the latter can make use of the former. 
413      PR 20951. [adunn at ncipher.com]
414
415   *) ab.c: Correct behavior of HTTP request headers sent by ab
416      in presence of -H command-line overrides. PR 31268, 26554.
417      [Arvind Srinivasan <arvind.srinivasan  sun.com>]
418
419   *) ab.c: The apr_port_t type is unsigned, but ab was using a
420      signed format code in its reports. PR 42070.
421      [Takashi Sato <serai  lans-tv.com>]
422
423   *) core: Correct a regression since 2.0.x in the handling of AllowOverride 
424      Options.  PR 41829.  [Torsten Förtsch <torsten.foertsch gmx.net>]
425
426   *) mod_proxy_http: Handle request bodies larger than 2 GB by converting
427      the Content-Length header of the request correctly. PR 40883.
428      [Ruediger Pluem, toadie <toadie643 gmail.com>]
429
430   *) mod_proxy: Fix some proxy setting inheritance problems (eg:
431      ProxyTimeout). PR 11540. [Stuart Children <stuart terminus.co.uk>]
432
433   *) Unix MPMs: Catch SIGFPE so that exception hooks and CoreDumpDirectory
434      can work after that terminating signal.
435      [Eric Covener <covener gmail.com>]
436
437   *) Win32: Makefile.win will now build with MS VC 8 (Visual Studio 2005)
438      including embedding the .manifest information into each binary.
439      [William Rowe]
440
441 Changes with Apache 2.2.4
442
443   *) mod_isapi: Correctly present SERVER_PORT_SECURE.
444      PR: 40573.  [Matt Eaton <asf divinehawk.com>]
445
446   *) Allow htcacheclean, httxt2dbm, and fcgistarter to link apr/apr-util
447      statically like the older support programs.
448      [Eric Covener <covener gmail.com>]
449
450   *) core: Fix NONBLOCK status of listening sockets on restart/graceful
451      PR 37680.  [Darius Davis <darius-abz free-range.com.au>]
452
453   *) mod_deflate: Rework inflate output and deflate output filter to fix several
454      issues: Incorrect handling of flush buckets, potential memory leaks,
455      excessive memory usage in inflate output filter for large compressed
456      content. PR 39854. [Ruediger Pluem, Nick Kew, Justin Erenkrantz]
457
458   *) mod_mem_cache: Memory leak fix: Unconditionally free the buffer.
459      [Davi Arnaut <davi haxent.com.br>]
460
461   *) Allow mod_dumpio to log at other than DEBUG levels via
462      the new DumpIOLogLevel directive. [Jim Jagielski]
463
464   *) rotatelogs: Improve error message for open failures.  PR 39487.
465      [Joe Orton]
466
467   *) Better detection and clean up of ldap connection that has been
468      terminated by the ldap server.  PR 40878.
469      [Rob Baily <rbaily servicebench com>]
470
471   *) mod_mem_cache: Convert mod_mem_cache to use APR memory pool functions
472      by creating a root pool for object persistence across requests. This
473      also eliminates the need for custom serialization code.
474      [Davi Arnaut <davi haxent.com.br>]
475
476   *) mod_authnz_ldap: Add an AuthLDAPRemoteUserAttribute directive. If
477      set, REMOTE_USER will be set to this attribute, rather than the
478      username supplied by the user. Useful for example when you want users
479      to log in using an email address, but need to supply a userid instead
480      to the backend.  [Graham Leggett]
481
482   *) mod_cgi and mod_cgid: Don't use apr_status_t error return
483      from input filters as HTTP return value from the handler.
484      PR 31579.  [Nick Kew]
485
486   *) mod_cache: Eliminate a bogus error in the log when a filter returns
487      AP_FILTER_ERROR.  [Niklas Edmundsson <nikke acc.umu.se>]
488
489   *) core: Fix issue which could cause piped loggers to be orphaned and never
490      terminate after a graceful restart.  PR 40651.  [Joe Orton, Ruediger Pluem]
491
492   *) core: Fix address-in-use startup failure caused by corruption of the list
493      of listen sockets in some configurations with multiple generic Listen
494      directives.  [Jeff Trawick]
495
496   *) mod_headers: Support regexp-based editing of HTTP headers.  [Nick Kew]
497
498   *) mod_proxy: Add explicit flushing feature. When Servlet container sends AJP
499      body message with size 0, this means that Servlet container has asked for
500      an explicit flush. Create flush bucket in that case. This feature has been
501      added to the recent Tomcat versions without breaking the AJP protocol.
502      [Mladen Turk]
503
504   *) mod_proxy_balancer: Set the new environment variable BALANCER_ROUTE_CHANGED
505      if a worker with a route different from the one supplied by the client
506      had been chosen or if the client supplied no routing information for
507      a balancer with sticky sessions. [Ruediger Pluem]
508
509   *) mod_proxy_balancer: Add information about the route, the sticky session
510      and the worker used during a request as environment variables. PR 39806.
511      [Brian <brectanu gmail.com>]
512
513   *) mod_proxy: Don't try to use dead backend connection. PR 37770.
514      [Olivier BOEL <ob dorrboel.com>]
515
516   *) mod_proxy_balancer: Extract stickysession routing information contained as
517      parameter in the URL correctly. PR 40400.
518      [Ruediger Pluem, Tomokazu Harada <harada sysrdc.ns-sol.co.jp>]
519
520   *) mod_proxy_ajp: Added cping/cpong support for the AJP protocol.
521      A new worker directive ping=timeout will cause CPING packet
522      to be send expecting CPONG packet within defined timeout.
523      In case the backend is too busy this will fail instead
524      sending the full header.  [Mladen Turk]
525
526   *) mod_cache: From RFC3986 (section 6.2.3.) if a URI contains an
527      authority component and an empty path, the empty path is to be equivalent
528      to "/". It explicitly cites the following four URIs as equivalents:
529        http://example.com
530        http://example.com/
531        http://example.com:/
532        http://example.com:80/
533      [Davi Arnaut <davi haxent.com.br>]
534
535   *) mod_cache: Don't cache requests with a expires date in the past;
536      otherwise mod_cache will always try to cache the URL. This bug
537      might lead to numerous rename() errors on win32 if the URL was
538      previously cached.  [Davi Arnaut <davi haxent.com.br>]
539
540   *) mod_disk_cache: Make sure that only positive integers are accepted
541      for the CacheMaxFileSize and CacheMinFileSize parameters in the
542      config file. PR39380.  [Niklas Edmundsson <nikke acc.umu.se>]
543
544   *) core: Deal with the widespread use of apr_status_t return values
545      as HTTP status codes, as documented in PR#31759 (a bug shared by
546      the default handler, mod_cgi, mod_cgid, mod_proxy, and probably
547      others). PR31759.  [Jeff Trawick, Ruediger Pluem, Joe Orton]
548
549   *) mod_ext_filter: Handle filter names which include capital letters.
550      PR 40323.  [Jeff Trawick]
551
552   *) mod_isapi: Avoid double trailing slashes in HSE_REQ_MAP_URL_TO_PATH
553      support.  Also corrects the slashes for Windows.
554      PR 15993.  [William Rowe]
555
556   *) mod_isapi: Handle "HTTP/1.1 200 OK" style status lines correctly, the
557      token parser worked while the resulting length was misinterpreted.
558      PR 29098.  [Brock Bland <bbland serena.com>]
559
560   *) mod_isapi: Return 0 (failure) for more of the various ap_pass_brigade
561      attempts to stream the response at the client.  Log these as well.
562      PR 30022, 40470.  [William Rowe, Matt Eaton <asf divinehawk.com>]
563
564   *) mod_isapi: Ensure we walk through all the methods the developer may have
565      employed to report their HTTP status result code.
566      PR 16637 30033 28089.  [Matt Lewandowsky <matt iamcode.net>, William Rowe]
567
568   *) mod_echo: Fix precedence problem in if statement. PR 40658.
569      [Larry Cipriani <lvc lucent.com>]
570
571   *) mod_mime_magic: Fix precedence problem in if statement. PR 40656.
572      [Larry Cipriani <lvc lucent.com>]
573
574   *) The full server version information is now included in the error log at
575      startup as well as server status reports, irrespective of the setting
576      of the ServerTokens directive.  ap_get_server_version() is now 
577      deprecated, and is replaced by ap_get_server_banner() and 
578      ap_get_server_description().  [Jeff Trawick]
579
580   *) mod_proxy_balancer: Workers can now be defined as part of
581      a balancer cluster "set" in which members of a lower-numbered set
582      are preferred over higher numbered ones.  [Jim Jagielski]
583
584   *) mod_proxy_balancer: Workers can now be defined as "hot standby" which
585      will only be used if all other workers are unusable (eg: in
586      error or disabled). Also, the balancer-manager displays the election
587      count and I/O counts of all workers.  [Jim Jagielski]
588
589   *) mod_proxy_ajp: Close connection to backend if reading of request body
590      fails. PR 40310.  [Ian Abel <ianabel mxtelecom.com>]
591
592   *) mod_proxy_balancer: Retry worker chosen by route / redirect worker if
593      it is in error state before sending "Service Temporarily Unavailable".
594      PR 38962.  [Christian Boitel <cboitel lfdj.com>]
595
596 Changes with Apache 2.2.3
597
598   *) SECURITY: CVE-2006-3747 (cve.mitre.org)
599      mod_rewrite: Fix an off-by-one security problem in the ldap scheme
600      handling.  For some RewriteRules this could lead to a pointer being
601      written out of bounds.  Reported by Mark Dowd of McAfee.
602      [Mark Cox]
603
604   *) mod_authn_alias: Add a check to make sure that the base provider and the
605      alias names are different and also that the alias has not been registered
606      before. PR 40051. [Brad Nicholes]
607
608   *) mod_authnz_ldap: Fix a problem with invalid auth error detection for LDAP
609      client SDKs that don't support the LDAP_SECURITY_ERROR macro. PR 39529.
610      [Ray Price <dohrayme yahoo.com>, Josh Fenlason <jfenlason ptc.com>]
611
612   *) mod_cache: Do not overwrite the Content-Type in the cache, for
613      successfully revalidated cached objects. PR 39647. [Ruediger Pluem]
614
615   *) mod_speling: Add directive to deal with case corrections only
616      and ignore other misspellings [Olivier Thereaux  <ot w3.org>]
617
618   *) mod_dbd: Fix dependence on virtualhost configuration in
619      defining prepared statements (possible segfault at startup
620      in user modules such as mod_authn_dbd).  [Nick Kew]
621
622   *) Add optional 'scheme://' prefix to ServerName directive,
623      allowing correct determination of the canonical server URL
624      for use behind a proxy or offload device handling SSL; fixing
625      redirect generation in those cases. PR 33398. [Sander Temme]
626
627   *) Added server_scheme field to server_rec for above. Minor MMN bump.
628      [Sander Temme]
629
630   *) mod_cache: Make caching of reverse SSL proxies possible again. PR 39593.
631      [Ruediger Pluem, Joe Orton]
632
633   *) Worker MPM: On graceless shutdown or restart, send signals to
634      each worker thread to wake them up if they're polling on a
635      Keep-Alive connection.  PR 38737.  [Chris Darroch]
636
637   *) worker and event MPMs: fix excessive forking if fork() or child_init
638      take a long time.  PR 39275.
639      [Greg Ames, Jeff Trawick, Chris Darroch <chrisd pearsoncmg.com> ]
640
641   *) configure: Add "--with-included-apr" flag to force use of the
642      bundled version of APR at build time.  [Joe Orton]
643
644   *) Respect GracefulShutdownTimeout in the worker and event MPMs.
645      [Chris Darroch, Garrett Rooney]
646
647   *) mod_mem_cache: Set content type correctly when delivering data from
648      cache. PR 39266. [Ruediger Pluem]
649
650   *) mod_autoindex: Fix filename escaping with FancyIndexing disabled.
651      PR 38910.  [Robby Griffin <rmg terc.edu>]
652
653   *) mod_charset_lite: Bypass translation when the source and dest charsets
654      are the same. [Jeff Trawick]
655
656 Changes with Apache 2.2.2
657
658   *) mod_deflate: Allow mod_deflate to handle internal redirects.
659      [Brian J. France <list firehawksystems.com>]
660
661   *) mod_proxy_balancer: Initialize members of a balancer correctly.
662      PR 38227. [James A. Robinson <jim.robinson stanford.edu>]
663
664   *) mod_proxy: Do not release connections from connection pool twice.
665      PR 38793. [Ruediger Pluem, matthias <mk-asf gigacodes.de>]
666
667   *) core: Prevent reading uninitialized memory while reading a line of
668      protocol input.  PR 39282. [Davi Arnaut <davi haxent.com.br>]
669
670   *) mod_dbd: Update defaults, improve error reporting.
671      [Chris Darroch <chrisd pearsoncmg com>, Nick Kew]
672
673   *) mod_dbd: Create own pool and mutex to avoid problem use of
674      process pool in request processing.
675      [Chris Darroch <chrisd pearsoncmg com>]
676
677   *) HTML-escape the Expect error message.  Not classed as security as
678      an attacker has no way to influence the Expect header a victim will
679      send to a target site.  Reported by Thiago Zaninotti
680      <thiango nstalker.com>. [Mark Cox]
681
682   *) htdbm: Fix crash processing -d option in 64-bit mode on HP-UX.
683      [Jeff Trawick]
684
685   *) htdbm: Warn the user when adding a plaintext password on a platform
686      where it wouldn't work with the server (i.e., anywhere that has
687      crypt()).  [Jeff Trawick]
688
689   *) mod_proxy: don't reuse a connection that may be to the wrong backend
690      PR 39253 [Ruediger Pluem]
691
692   *) Default handler: Don't return output filter apr_status_t values.
693      PR 31759.  [Jeff Trawick, Ruediger Pluem, Joe Orton]
694
695 Changes with Apache 2.2.1
696
697   *) SECURITY: CVE-2005-3357 (cve.mitre.org)
698      mod_ssl: Fix a possible crash during access control checks if a
699      non-SSL request is processed for an SSL vhost (such as the
700      "HTTP request received on SSL port" error message when an 400 
701      ErrorDocument is configured, or if using "SSLEngine optional").
702      PR 37791.  [Rüdiger Plüm, Joe Orton]
703
704   *) SECURITY: CVE-2005-3352 (cve.mitre.org)
705      mod_imagemap: Escape untrusted referer header before outputting
706      in HTML to avoid potential cross-site scripting.  Change also
707      made to ap_escape_html so we escape quotes.  Reported by JPCERT.
708      [Mark Cox]
709
710   *) mod_proxy_ajp: Flushing of the output after each AJP chunk is now
711      configurable at runtime via the 'flushpackets' and 'flushwait' worker
712      params. Minor MMN bump. [Jim Jagielski]
713
714   *) mod_proxy: Fix incorrect usage of local and shared worker init.
715      PR 38403. [Jim Jagielski]
716
717   *) mod_isapi: Fix compiler errors on Unix platforms.
718      [William Rowe]
719
720   *) mod_proxy_http: Send HTTP Keep-Alive Headers. PR 38524.
721      [Rüdiger Plüm, Joe Orton]
722
723   *) mod_disk_cache: Return the correct error codes from bucket read
724      failures, instead of APR_EGENERAL.
725      [Brian Akins <brian.akins turner.com>]
726
727   *) Add APR/APR-Util Compiled and Runtime Version numbers to the
728      output of 'httpd -V'. [William Rowe]
729
730   *) http: If a connection is aborted while waiting for a chunked line,
731      flag the connection as errored out.  [Justin Erenkrantz]
732
733   *) core: Reject invalid Expect header immediately. PR 38123.
734      [Ruediger Pluem]
735
736   *) mod_proxy: Fix KeepAlives not being allowed and set to
737      backend servers. PR 38602. [Ruediger Pluem, Jim Jagielski]
738
739   *) mod_proxy: If we get an error reading the upstream response,
740      close the connection.  [Justin Erenkrantz, Roy T. Fielding,
741      Jim Jagielski, Ruediger Pluem]
742
743   *) mod_proxy_ajp: Support common headers of the AJP protocol in responses.
744      PR 38340. [Aleksey Pesternikov <apesternikov yahoo.com>]
745
746   *) mod_proxy_balancer: Do not overwrite the status of initialized workers and
747      respect the configured status of uninitilized workers when creating a new
748      child process. [Ruediger Pluem]
749
750   *) mod_proxy_ajp: Crosscheck the length of the body chunk with the length of
751      the ajp message to prevent mod_proxy_ajp from reading beyond the buffer
752      boundaries and thus revealing possibly sensitive memory contents to the
753      client. [Ruediger Pluem]
754
755   *) Ensure that the proper status line is written to the client, fixing
756      incorrect status lines caused by filters which modify r->status without 
757      resetting r->status_line, such as the built-in byterange filter.
758      [Jeff Trawick]
759
760   *) mod_speling: Stop crashing with certain non-file requests.  [Jeff Trawick]
761
762   *) mod_cache: Make caching of reverse proxies possible again. PR 38017.
763      [Ruediger Pluem]
764
765   *) Modify apr[util] .h detection to avoid breakage on VPATH builds
766      using Solaris make (amoung others) and avoid breakage in ./buildconf
767      when srclib/apr[-util] are symlinks rather than directories proper.
768      [William Rowe]
769
770   *) Chunk filter: Fix chunk filter to create correct chunks in the case that
771      a flush bucket is surrounded by data buckets. [Ruediger Pluem]
772
773   *) Fix syntax error in httpd.h with strict compilers.  PR 38740.
774      [Per Olausson <pao darkheim.freeserve.co.uk>]
775
776   *) Preserve the Content-Length header for a proxied HEAD response.
777      PR 18757.  [Greg Ames]
778
779   *) Fix recursive ErrorDocument handling.  PR 36090.
780      [Chris Darroch <chrisd pearsoncmg.com>]
781
782   *) Don't hang on error return from post_read_request.  PR37790 [Nick Kew]
783
784   *) Fix off-by-one error in proxy_balancer.  PR37753
785      [Kazuhiro Osawa <ko yappo ne jp>]
786
787 Changes with Apache 2.2.0
788
789   *) mod_negotiation: Minor performance tweak by reusing already calculated
790      strlen.
791      [Ruediger Pluem, Christophe Jaillet <christophe.jaillet wanadoo.fr>]
792
793   *) Remove support for 'On' and 'Off' for AuthBasicProvider and
794      AuthDigestProvider.  [Joshua Slive, Justin Erenkrantz]
795
796   *) Add in new UseCanonicalPhysicalPort directive, which controls
797      whether or not Apache will ever use the actual physical port
798      when constructing the canonical port number. [Jim Jagielski]
799
800   *) mod_dav: Fix a null pointer dereference in an error code path during the
801      handling of MKCOL.
802      [Ruediger Pluem, Ghassan Misherghi <ghassanm ucdavis.edu>]
803
804   *) Fix DESTDIR=... installation when using bundled copy of APR.
805      [Torsten Foertsch <torsten.foertsch gmx.net>]
806
807   *) mod_proxy_balancer: When finding best worker, use case insensitive
808      match for scheme and host, but case sensitive for the rest of
809      the path. [Jim Jagielski, Ruediger Pluem]
810
811
812   [Apache 2.1.0-dev includes those bug fixes and changes with the
813    Apache 2.2.xx tree as documented, and except as noted, below.]
814
815 Changes with Apache 2.2.x and later:
816
817   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?view=markup
818
819 Changes with Apache 2.0.x and later:
820
821   *) http://svn.apache.org/viewvc/httpd/httpd/branches/2.0.x/CHANGES?view=markup
822
823 Changes with Apache 1.3.x and later:
824
825   *) http://svn.apache.org/viewvc/httpd/httpd/branches/1.3.x/src/CHANGES?view=markup