You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by je...@apache.org on 2002/09/01 20:46:04 UTC

cvs commit: apache-1.3/src/main http_protocol.c

jerenkrantz    2002/09/01 11:46:04

  Modified:    src      CHANGES
               src/main http_protocol.c
  Log:
  Fix FileETag None directive.
  
  - Fix segfault on strlen computation on the empty string in vlv case
  - If the etag is "", don't set the ETag header to be "" - leave the
    header NULL instead.
  
  Andrew's patch would change ap_meets_condition to accept "", but Justin
  thinks it would be better just to sidestep it all together and not set
  ETag when it would be "".
  
  (Backport of patch applied to httpd-2.0 as original 1.3 code has the
  same flaws.)
  
  PR: 12202
  Submitted by: Andrew Ho <an...@tellme.com>
  
  Revision  Changes    Path
  1.1843    +4 -0      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1842
  retrieving revision 1.1843
  diff -u -u -r1.1842 -r1.1843
  --- CHANGES	21 Aug 2002 13:42:41 -0000	1.1842
  +++ CHANGES	1 Sep 2002 18:46:03 -0000	1.1843
  @@ -1,4 +1,8 @@
   Changes with Apache 1.3.27
  +
  +  *) Fix FileETags none operation.  PR 12202.
  +     [Justin Erenkrantz, Andrew Ho <an...@tellme.com>]
  +
     *) Win32: Fix one byte buffer overflow in ap_get_win32_interpreter
        when a CGI script's #! line does not contain a \r or \n (i.e.
        a line feed character) in the first 1023 bytes. The overflow
  
  
  
  1.327     +10 -1     apache-1.3/src/main/http_protocol.c
  
  Index: http_protocol.c
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/main/http_protocol.c,v
  retrieving revision 1.326
  retrieving revision 1.327
  diff -u -u -r1.326 -r1.327
  --- http_protocol.c	12 Aug 2002 19:19:03 -0000	1.326
  +++ http_protocol.c	1 Sep 2002 18:46:03 -0000	1.327
  @@ -737,6 +737,11 @@
   
       if (!r->vlist_validator) {
           etag = ap_make_etag(r, 0);
  +
  +        /* If we get a blank etag back, don't set the header. */
  +        if (!etag[0]) {
  +            return;
  +        }
       }
       else {
           /* If we have a variant list validator (vlv) due to the
  @@ -760,8 +765,12 @@
                  
           variant_etag = ap_make_etag(r, vlv_weak);
   
  -        /* merge variant_etag and vlv into a structured etag */
  +        /* If we get a blank etag back, don't append vlv and stop now. */
  +        if (!variant_etag[0]) {
  +            return;
  +        }
   
  +        /* merge variant_etag and vlv into a structured etag */
           variant_etag[strlen(variant_etag) - 1] = '\0';
           if (vlv_weak)
               vlv += 3;