httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject cvs commit: httpd-2.0/server core.c
Date Thu, 11 Oct 2001 01:38:28 GMT
jerenkrantz    01/10/10 18:38:28

  Modified:    server   core.c
  The problem here is that we are getting some zero-length buckets at the head
  of our brigade - which are in isolation okay.  In this situation, they
  must be removed by the call to APR_BRIGADE_NORMALIZE.
  The way we partition the buckets means that we will never remove the
  zero-length bucket from the head - causing an infinite loop.  We read only
  a single bucket now - previously partition with the blocking reads would
  read multiple buckets - but it forced having a defined length which we
  agreed was bogus.
  Therefore, if we have a zero-length bucket at the head, we would then try
  to partition and split at the zero-point of the brigade.  That combination
  doesn't actually remove the zero-length bucket - it is still there - causing
  an infinite loop because we'll never go past the zero-length bucket.
  This call was originally present in core_input_filter.  I think it might
  be better to fix partition/split/etc to eliminate a zero-length bucket
  and skip it.  But, I'm not 100% sure that needs to happen.
  Revision  Changes    Path
  1.73      +3 -0      httpd-2.0/server/core.c
  Index: core.c
  RCS file: /home/cvs/httpd-2.0/server/core.c,v
  retrieving revision 1.72
  retrieving revision 1.73
  diff -u -r1.72 -r1.73
  --- core.c	2001/10/10 22:14:10	1.72
  +++ core.c	2001/10/11 01:38:28	1.73
  @@ -2780,6 +2780,9 @@
           APR_BRIGADE_INSERT_TAIL(ctx->b, e);
  +    /* ### This is bad. */
       /* ### AP_MODE_PEEK is a horrific name for this mode because we also
        * eat any CRLFs that we see.  That's not the obvious intention of
        * this mode.  Determine whether anyone actually uses this or not. */

View raw message