httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From grega...@apache.org
Subject cvs commit: httpd-2.0/modules/http http_protocol.c
Date Mon, 15 Apr 2002 20:42:45 GMT
gregames    02/04/15 13:42:45

  Modified:    modules/http http_protocol.c
  Log:
  ap_send_error_response: reset r->output filters to the protocol filters.
  The equivalent logic was deleted when request filters were renamed to
  RESOURCE filters.  This fixes the seg faults that sometimes happen on
  daedalus after a bogus 416 HTTP response is generated.
  
  In this case, includes_filter had found an <!--#include virtual > tag, and
  sent a brigade representing the data before it down the filter chain.  The
  byterange filter generated the bogus 416.  ap_send_error_response essentially
  starts over with a new response, but it didn't do anything to clean up the
  filter chain.  So the same instance of the includes_filter got driven from the
  top with the canned error text and and EOS bucket, which confused the heck
  out of it.  It inserted a sentinel from the original brigade into the
  error page brigade, causing problems further down the filter chain.
  
  Submitted by:	Greg Ames, Jeff Trawick
  
  Revision  Changes    Path
  1.408     +6 -0      httpd-2.0/modules/http/http_protocol.c
  
  Index: http_protocol.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/modules/http/http_protocol.c,v
  retrieving revision 1.407
  retrieving revision 1.408
  diff -u -r1.407 -r1.408
  --- http_protocol.c	1 Apr 2002 22:26:09 -0000	1.407
  +++ http_protocol.c	15 Apr 2002 20:42:45 -0000	1.408
  @@ -2025,6 +2025,12 @@
        */
       r->eos_sent = 0;
   
  +    /* and we need to get rid of any RESOURCE filters that might be lurking 
  +     * around, thinking they are in the middle of the original request
  +     */
  +
  +    r->output_filters = r->proto_output_filters;
  +
       /*
        * It's possible that the Location field might be in r->err_headers_out
        * instead of r->headers_out; use the latter if possible, else the
  
  
  

Mime
View raw message