httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From (Rodent of Unusual Size)
Subject 1.2b8 [pre]announcement
Date Wed, 09 Apr 1997 00:13:42 GMT
    Okey, here it is.  It took me quite a while to figure out the easy
    way Chuck did this last time. :-(  I added a couple of things that
    I remembered that weren't in the CHANGES file; naturally, they were
    ones I submitted myself (that's why I remembered them ;-), and can
    therefore be nuked if anyone thinks I'm a blowhard..

    I'm going to eat dinner now, and then send this & fix up the web
    site.  You got comments, send 'em now before I finish munching..

    #ken    :-)}

The eighth beta release of Apache 1.2 is now available in the usual
places (see below).  A lot of problems, inconsistencies, and outright
bugs are corrected by this version, and if you're running any flavour of
1.2, we highly recommend that you upgrade to 1.2b8.  We have high hopes
that this is a release candidate; if no major problems with it are
identified, the final formal release of Apache 1.2 will soon follow.

Users of Apache 1.2b7 and earlier have been very faithful at reporting
issues, and we owe them much gratitude.  Thank you!

See the main Apache web site ( for downloading
instructions.  This site also includes pointers to many mirror sites
that may be closer to you.

Thank you for using Apache, and helping make it the Number 1 server on
the Web!

[The notation "PR#nnn" refers to a problem report in the Apache bug
database <>]

Changes with Apache 1.2b8:
    * HP MPE/iX fixes [[text]]

    * replace bcopy with memmove for ANSIfriendliness [[text]]

    * Port to UXP/DS(V20) [[text]]

    * MachTen fine tuning [[text]]

    * PR#186: Make declaration of add_env_variable agree with
      definition.  [[text]]

    * PR#210: Insert missing semicolon.  [[text]]

    * Correctly handle Swedish filenames [[text]]

    * buff.c header include fixes [[text]]

    * create_argv() fixes [[text]]

    * remove cleanups from bpushfd() [[text]]

    * help avoid virtual host confusion [[text]]

    * PR#40: include path_info for error when file doesn't exist [[text]]

    * PR#59: os/2: allow for cgi files without the .EXE extension [[text]]

    * missing header_parser slots in modules [Ken Coar]

    * PR#146, PR#187: is_url() not HTTP/1.1 conformant [Ken Coar]

    * log long headers in case it is an attack [[text]]

    * PR#194: ErrorDocument broken due to an optimization in 1.2b7 [Dean

    * PR#190: Reduced IdentityCheck timeout to 30 seconds from 60 [[text]]

    * PR#160: invoke_handler() doesn't handle mime arguments [[text]]

    * memory management goof in alloc.c [[text]]

    * support/Makefile.tmpl and LIBS [[text]]

    * deal with long hostnames at gethostname() call [[text]]

    * clear memory allocated for listeners [[text]]

    * PR#212: improved handling of ip addresses in VirtualHost [[text]]

    * mod_neg iso-8859-1 fixup and other cleanups [[text]]

    * workaround a compiler bug that causes sunos 4.x to panic [[text]]

    * don't count starting servers as idle [[text]]

    * document dangers of "UserDir ./" and need to protect <Directory />

    * problem with proper per-connection counting [[text]]

    * infinite loop with trailing slash and type map [[text]]

    * vhost error log not set when initialized [[text]]

    * PR#234,143: per_dir_config incorrectly set for name-based vhosts

    * tighten email on anonymous logging [[text]]

    * big header table sending and persistence fixes [[text]]

    * garbage_coll() not called in proxy if filesystem full [[text]]

    * PR#105: continue after DNS errors and document vhosts better [[text]]

    * errno cleanup [[text]]

    * "make clean" bombs if no subdirectory modules are used [[text]]

    * iso-8859-1 selected even if other acceptable [[text]]

    * handle multiple Configurations without warning [[text]]

    * bug reporting changes [[text]]

    * use shmget on linux [[text]]

    * PR#246: AuthAuthoritative goofup introduced in 1.2b3 [Ken Coar]

    * mod_rewrite 3.0.2 [Ralf Engelschall]

    * PR#276: host port changed to unsigned short [Ken Coar]

    * PR#122: patch for 3-second-delay CGI problem [Dean Gaudet]

    * Correct status when POSTing to bad URL, proxy to origin (ends FAQ)

    * mod_negotiation: not copying headers, and more memory fixes [[text]]

    * NO_LINGCLOSE defined for SunOS [[text]]

    * make modules/Makefile generated by Configure [Chuck Murcko, Roy
      Fielding, Ken Coar, Marc Slemko]

    * Brian Moore's FIX to stuck children with proxy [[text]]

    * Fix more timeout sillyness [[text]]

    * timeout fixes for the proxy [[text]]

    * PR#214: fix docs on access control for proxy [[text]]

    * Last lingering cleanup, setsockopt error messages (with Marc's
     changes)  [[text]]

    * include dump location in error_log when dying [Ken Coar]

    * mod_negotiation update for "big header table sending..." [[text]]

    * fix improper prototype of table_do() [[text]]

    * sub_req_lookup_simple() bug fixes take 3 [[text]]

    * suexec doesn't close log file [[text]]

    * info.html update [[text]]

Changes with 1.2b7:
  *) unset Content-Length if chunked (RFC-2068) [Petr Lampa]

  *) mod_negotiation fixes [Petr Lampa] PR#157, PR#158, PR#159
     - replace protocol response numbers with symbols
     - save variant-list into main request notes
     - free allocated memory from subrequests
     - merge notes, headers_out and err_headers_out

  *) changed status check mask in proxy_http.c from "HTTP/#.# ### *" to
     "HTTP/#.# ###*" to be more lenient about what we accept.
     [Chuck Murcko]

  *) more proxy FTP bug fixes:
     - Changed send_dir() to remove user/passwd from displayed URL.
     - Changed login error messages to be more descriptive. 
     - remove setting of SO_DEBUG socket option
     - Make ftp_getrc() more lenient about multiline responses,
       specifically, 230 responses which don't have continuation 230-
       on each line). These seem to be all NT FTP servers, and while
       perhaps questionable, they appear to be legal by RFC 959.
     - Add missing kill_timeout() after transfer to user completes.
     [Chuck Murcko]

  *) Fixed problem where a busy server could hang when restarting
     after being sent a SIGHUP due to child processes not exiting.
     [Marc Slemko]

  *) Modify mod_include escaping so a '\' only signifies an escaped
     character if the next character is one that needs
     escaping.  [Ben Laurie]

  *) Eliminated possible infinite loop in mod_imap when relative URLs
     are used with a 'base' directive that does not have a '/' in it.
     [Marc Slemko, reported by Onno Witvliet <>]

  *) Reduced the default timeout from 1200 seconds to 300, and the
     one in the sample configfile from 400 to 300.  [Marc Slemko]

  *) Stop vbprintf from crashing if given a NULL string pointer; 
     print (null) instead.  [Ken Coar]

  *) Don't disable Nagle algorithm if system doesn't have TCP_NODELAY.
     [Marc Slemko and Roy Fielding]

  *) Fixed problem with mod_cgi-generated internal redirects trying to
     read the request message-body twice. [Archie Cobbs and Roy

  *) Reduced timeout on lingering close, removed possibility of a
     blocked read causing the child to hang, and stopped logging of errors if
     the socket is not connected (reset by client).  [Roy Fielding]

  *) Rearranged main child loop to remove duplication of code in
     select/accept and keep-alive requests, fixed several bugs regarding
     checking scoreboard_image for exit indication and failure to
     account for all success conditions and trap all error conditions,
     prevented multiple flushes before closing the socket; close the
     entire socket buffer instead of just one descriptor, prevent logging of
     EPROTO and ECONNABORTED on platforms where supported, and generally
     improved readability.  [Roy Fielding]

  *) Extensive performance improvements. Cleaned up inefficient use of
     auto initializers, multiple is_matchexp calls on a static string,
     and excessive merging of response_code_strings. [Dean Gaudet]

  *) Added double-buffering to mod_include to improve performance on
     server-side includes. [Marc Slemko]

  *) Several fixes for suexec wrapper. [Randy Terbush]
     - Make wrapper work for files on NFS filesystem.
     - Fix portability problem of MAXPATHLEN.
     - Fix array overrun problem in clean_env().
     - Fix allocation of PATH environment variable

  *) Removed extraneous blank line is description of mod_status chars.
     [Kurt Kohler]

  *) Logging of errors from the call_exec routine simply went nowhere,
     since the logfile fd has been closed, so now we send them to
     stderr.. [Harald T. Alvestrand]

  *) Fixed core dump when DocumentRoot is a CGI.
     [Ben Laurie, reported by]

  *) Fixed potential file descriptor leak in mod_asis; updated it and
     http_core to use pfopen/pfclose instead of fopen/fclose.
     [Randy Terbush and Roy Fielding]

  *) Fixed handling of unsigned ints in ap_snprintf() on some chips such
     as the DEC Alpha which is 64-bit but uses 32-bit ints. 
     [Dean Gaudet and Ken Coar]

  *) Return a 302 response code to the client when sending a redirect
     due to a missing trailing '/' on a directory instead of a 301; now
     it is cacheable. [Markus Gyger]

  *) Fix condition where, if a bad directive occurs in .htaccess, and
     sub_request() goes first to this directory, then log_reason() will
     SIGSEGV because it doesn't have initialized r->per_dir_config.
     [PR#162 from Petr Lampa, fix by Marc Slemko and Dean Gaudet]

  *) Fix handling of lang_index in is_variant_better().  This was
     causing problems which resulted in the server sending the
     wrong language document in some cases. [Petr Lampa]

  *) Remove free() from clean_env() in suexec wrapper. This was nuking
     the clean environment on some systems.

  *) Tweak byteserving code (e.g. serving PDF files) to work around
     bugs in Netscape Navigator and Microsoft Internet Explorer.
     Emit Content-Length header when sending multipart/byteranges.
     [Alexei Kosut]

  *) Port to HI-UX/WE2. [Nick Maclaren]

  *) Port to HP MPE operating system for HP 3000 machines
     [Mark Bixby <>]

  *) Fixed bug which caused a segmentation fault if only one argument
     given to RLimit* directives. [Ed Korthof]

  *) Continue persistent connection after 204 or 304 response. [Dean

  *) Improved buffered output to the client by delaying the flush
     decision until the BUFF code is actually about to read the next request.
     This fixes a problem introduced in 1.2b5 with clients that send
     an extra CRLF after a POST request. Also improved chunked output
     performance by combining writes using writev() and removing as
     many bflush() calls as possible.  NOTE: Platforms without writev()
     must add -DNO_WRITEV to the compiler CFLAGS, either in
     Configuration or Configure, unless we have already done so.  [Dean

  *) Fixed mod_rewrite bug which truncated the rewritten URL [Marc

  *) Fixed mod_info output corruption bug introduced by buffer overflow
     fixes. [Dean Gaudet]

  *) Fixed http_protocol to correctly output all HTTP/1.1 headers,
     including for the special case of a 304 response.  [Paul Sutton]

  *) Improved handling of TRACE method by bypassing normal method
     handling and header parsing routines; fixed Allow response to
     always allow TRACE. [Dean Gaudet]

  *) Fixed compiler warnings in the regex library. [Dean Gaudet]

  *) Cleaned-up some of the generated HTML. [Ken Coar]

Changes with Apache 1.2b6:
  *) Allow whitespace in imagemap mapfile coordinates. [Marc Slemko]

  *) Fix typo introduced in fix for potential infinite loop around
     accept() in child_main(). This change caused the rev to 1.2b6.
     1.2b5 was never a public beta.

Changes with Apache 1.2b5

  *) Change KeepAlive semantics (On|Off instead of a number), add
     MaxKeepAliveRequests directive. [Alexei Kosut]

  *) Various NeXT compilation patches, as well as a change in
     regex/regcomp.c since that file also used a NEXT define.
     [Andreas Koenig]

  *) Allow * to terminate the end of a directory match in mod_dir.
     Allows /~* to match for both /~joe and /~joe/. [David Bronder]

  *) Don't call can_exec() if suexec_enabled. Calling this requires
     scripts executed by the suexec wrapper to be world executable,
     which defeats one of the advantages of running the wrapper. [Randy

  *) Portability Fix: IRIX complained with 'make clean' about *pure*
     (removed) [Jim Jagielski]
  *) Migration from sprintf() to snprintf() to avoid buffer
     overflows. [Marc Slemko]

  *) Provide portable snprintf() implementation (ap_snprintf)
     as well as *cvt family. [Jim Jagielski]

  *) Portability Fix: NeXT lacks unistd.h so we wrap it's inclusion
     [Jim Jagielski]

  *) Remove mod_fastcgi.c from the distribution. This module appears
     to be maintained more through the Open Market channels and should
     continue to be easily available at

  *) Fixed bug in modules/Makefile that wouldn't allow building in more
     than one subdirectory (or cleaning, either). [Jeremy Laidman]

  *) mod_info assumed that the config files were relative to ServerRoot.
     [Ken the Rodent]

  *) CGI scripts called as an error document resulting from failed
     CGI execution would hang waiting for POST'ed data. [Rob Hartill]

  *) Log reason when mod_dir returns access HTTP_FORBIDDEN
     [Ken the Rodent]

  *) Properly check errno to prevent display of a directory index
     when server receives a long enough URL to confuse stat().
     [Marc Slemko]

  *) Several security enhancements to suexec wrapper. It is _highly_
     recommended that previously installed versions of the wrapper
     be replaced with this version.  [Randy Terbush, Jason Dour]

        - ~user execution now properly restricted to ~user's home
          directory and below.
        - execution restricted to UID/GID > 100
        - restrict passed environment to known variables
        - call setgid() before initgroups() (portability fix)
        - remove use of setenv() (portability fix)

  *) Add HTTP/1.0 response forcing. [Ben Laurie]

  *) Add access control via environment variables. [Ben Laurie]

  *) Add rflush() function. [Alexei Kosut]

  *) remove duplicate pcalloc() call in new_connection().

  *) Fix incorrect comparison which could allow number of children =
     MaxClients + 1 if less than HARD_SERVER_LIMIT. Also fix potential
     problem if StartServers > HARD_SERVER_LIMIT. [Ed Korthof]

  *) Updated support for OSes (MachTen, ULTRIX, Paragon, ISC, OpenBSD
     AIX PS/2, CONVEXOS. [Jim Jagielski]

  *) Replace instances of inet_ntoa() with inet_addr() for ProxyBlock.
     It's more portable. [Martin Kraemer]

  *) Replace references to make in Makefile.tmpl with $(MAKE).
     [Chuck Murcko]

  *) Add ProxyBlock directive w/IP address caching. Add IP address
     caching to NoCache directive as well. ProxyBlock works with all
     handlers; NoCache now also works with FTP for anonymous logins.
     Still more code cleanup. [Chuck Murcko]

  *) Add "header parse" API hook [Ben Laurie]

  *) Fix byte ordering problems for REMOTE_PORT [Chuck Murcko]

  *) suEXEC wrapper was freeing memory that had not been malloc'ed.

  *) Correctly allow access and auth directives in <Files> sections in
     server config files. [Alexei Kosut]

  *) Fix bug with ServerPath that could cause certain files to be not
     found by the server. [Alexei Kosut] 

  *) Fix handling of ErrorDocument so that it doesn't remove a trailing
     double-quote from text and so that it properly checks for
     unsupported status codes using the new index_of_response interface.
     [Roy Fielding] 

  *) Multiple fixes to the lingering_close code in order to avoid being
     interrupted by a stray timeout, to avoid lingering on a connection
     that has already been aborted or never really existed, to ensure
     that we stop lingering as soon as any error condition is received,
     and to prevent being stuck indefinitely if the read blocks.  Also
     improves reporting of error conditions.  [Marc Slemko and Roy

  *) Fixed initialization of parameter structure for sigaction.
     [, Adrian Filipi-Martin]

  *) Fixed reinitializing the parameters before each call to accept and
     select, and removed potential for infinite loop in accept.
     [Roy Fielding, after useful PR from]

  *) Fixed condition where, if a child fails to fork, the scoreboard
     would continue to say SERVER_STARTING forever. Eventually, the main
     process would refuse to start new children because
     count_idle_servers() will count those SERVER_STARTING entries and
     will always report that there are enough idle servers. [Phillip

  *) Fixed bug in bcwrite regarding failure to account for partial
     writes.  Avoided calling bflush() when the client is pipelining
     requests.  Removed unnecessary flushes from http_protocol. [Dean
  *) Added description of "." mode in server-status [Jim Jagielski]

Changes with Apache 1.2b4:
  *) Fix possible race condition in accept_mutex_init() that
     could leave a small security hole open allowing files to be
     overwritten in cases where the server UID has write permissions.
     [Marc Slemko]

  *) Fix awk compatibilty problem in Configure. [Jim Jagielski]

  *) Fix portablity problem in util_script where ARG_MAX may not be
     defined for some systems.

  *) Add changes to allow compilation on Machten 4.0.3 for PowerPC.
     [Randal Schwartz]

  *) OS/2 changes to support an MMAP style scoreboard file and UNIX
     style magic #! token for better script portability. [Garey Smiley]

  *) Fix bug in suexec wrapper introduced in b3 that would cause failed
     execution for ~userdir CGI. [Jason Dour]

  *) Fix initgroups() business in suexec wrapper. [Jason Dour]

  *) Fix month off by one in suexec wrapper logging.

Changes with Apache 1.2b3:
  *) Fix error in mod_cgi which could cause resources not to be properly
     freed, or worse. [Dean Gaudet]

  *) Fix find_string() NULL pointer dereference. [Howard Fear]

  *) Add set_flag_slot() at the request of Dirk and others.
     [Dirk vanGulik]

  *) Sync mod_rewrite with patch level 10. [Ralf Engelschall]

  *) Add changes to improve the error message given for invalid
     ServerName parameters. [Dirk vanGulik]

  *) Add "Authoritative" directive for Auth modules that don't
     currently have it. This gives admin control to assign authoritative
     control to an authentication scheme and allow "fall through" for
     those authentication modules that aren't "Authoritative" thereby
     allowing multiple authentication mechanisms to be chained.
     [Dirk vanGulik]

  *) Remove requirement for ResourceConfig/AccessConfig if not using
     the three config file layout. [Randy Terbush]

  *) Add PASV mode to mod_proxy FTP handler. [Chuck Murcko]

  *) Changes to suexec wrapper to fix the following problems:
     1.  symlinked homedirs will kill ~userdirs.
     2.  initgroups() on Linux 2.0.x clobbers gr->grid.
     3.  CGI command lines paramters problems
     4.  pw-pwdir for "docroot check" still the httpd user's pw record.
    [Randy Terbush, Jason Dour]

  *) Change create_argv() to accept variable arguments. This fixes
     a problem where arguments were not getting passed to the CGI via
     argv[] when the suexec wrapper was active. [Randy Terbush, Jake

  *) Collapse multiple slashes in path URLs to properly apply
     handlers defined by <Location>. [Alexei Kosut]

  *) Define a sane set of DEFAULT_USER and DEFAULT_GROUP values for AIX.

  *) Improve the accuracy of request duration timings by setting
     r->request_time in read_request_line() instead of read_request().
     [Dean Gaudet]

  *) Reset timeout while reading via get_client_block() in mod_cgi.c
     Fixes problem with timed out transfers of large files. [Rasmus

  *) Add the ability to pass different Makefile.tmpl files to Configure
     using the -make flag. [Rob Hartill]

  *) Fix coredump triggered when sending a SIGHUP to the server caused
     by an assertion failure, in turn caused by an uninitialised field
     in a listen_rec.  [Ben Laurie]

  *) Add FILEPATH_INFO variable to CGI environment, which is equal to
     PATH_INFO from previous versions of Apache (in certain situations,
     Apache 1.2's PATH_INFO will be different than 1.1's). [Alexei

  *) Add rwrite() function to API to allow for sending strings of
     arbitrary length. [Doug MacEachern]

  *) Remove rlim_t typedef for NetBSD. Do older versions need this?

  *) Defined rlim_t and WANTHSREGEX=yes and fixed waitpid() substitute
     for NeXT. [Jim Jagielski]

  *) Removed recent modification to promote the status code on internal
     redirects, since the correct fix was to change the default log
     format in mod_log_config so that it outputs the original status.
     [Rob Hartill]

Changes with Apache 1.2b2:
  *) Update set_signals() to use sigaction() for setting handlers.
     This appears to fix a re-entrant problem in the seg_fault()
     bus_error() handlers. [Randy Terbush]

  *) Changes to allow mod_status compile for OS/2 [Garey Smiley]

  *) changes for DEC AXP running OSF/1 v3.0. [Marc Evans]

  *) proxy_http.c bugfixes:  [Chuck Murcko]
        1) fixes possible NULL pointer reference w/NoCache
        2) fixes NoCache behavior when using ProxyRemote (ProxyRemote
           host would cache nothing if it was in the local domain,
           and the local domain was in the NoCache list)
        3) Adds Host: header when not available
        4) Some code cleanup and clarification

  *) mod_include.c bugfixes:
        1) Fixed an ommission that caused include variables to not 
           be parsed in config errmsg directives [Howard Fear]
        2) Remove HAVE_POSIX_REGEX cruft [Alexei Kosut]
        3) Patch to fix compiler warnings []
        4) Allow backslash-escaping to all quoted text
           [Ben Yoshino <>]
        5) Pass variable to command line if not set in XSSI's env
           [Howard Fear]

  *) Fix infinite loop when processing Content-language lines in
     type-map files. [Alexei Kosut]

  *) Closed file-globbing hole in test-cgi script. [Brian Behlendorf]

  *) Fixed problem in set_[user|group] that prevented CGI execution
     for non-virtualhosts when suEXEC was enabled. [Randy Terbush]

  *) Added PORTING information file.  [Jim Jagielski]

  *) Added definitions for S_IWGRP and S_IWOTH to conf.h [Ben Laurie]

  *) Changed default group to "nogroup" instead of "nobody" [Randy

  *) Fixed define typo of FCNTL_SERIALIZED_ACCEPT where

  *) Fixed additional uses of 0xffffffff where INADDR_NONE was intended,
     which caused problems of systems where socket s_addr is >32bits.

  *) Added comment to explain (r->chunked = 1) side-effect in
     http_protocol.c [Roy Fielding]

  *) Replaced use of index() in mod_expires.c with more appropriate
     and portable isdigit() test.  [Ben Laurie]
  *) Updated Configure for ... 
        OS/2          (DEF_WANTHSREGEX=yes, other code changes)
        *-dg-dgux*    (bad pattern match)
        QNX           (DEF_WANTHSREGEX=yes)
        *-sunos4*     (DEF_WANTHSREGEX=yes, -DUSEBCOPY)
        *-ultrix      (new)
        *-unixware211 (new)
     and added some user diagnostic info.  [Ben Laurie]

  *) In helpers/CutRule, replaced "cut" invocation with "awk" invocation
     for better portability. [Jim Jagielski]

  *) Updated helpers/GuessOS for ... 
        SCO 5            (recognize minor releases)
        SCO Unixware     (braindamaged uname,
        SCO UnixWare 2.1.1      (requires a separate set of #defines in
        IRIX64           (-sgi-irix64)
        ULTRIX           (-unknown-ultrix)
        SINIX            (-whatever-sysv4)
        NCR Unix         (-ncr-sysv4)
     and fixed something in helpers/PrintPath  [Ben Laurie]

Changes with Apache 1.2b1:
  *) Not listed. See <>

View raw message