rbb         01/01/22 15:33:59

  Modified:    buckets  apr_buckets_file.c
  Log:
  Fix the file buckets.  We were creating the second file bucket with
  incredibly wrong parameters.  This should fix the byterange filter in Apache
  until we modify it to use the bucket_copy stuff.
  
  Revision  Changes    Path
  1.21      +4 -2      apr-util/buckets/apr_buckets_file.c
  
  Index: apr_buckets_file.c
  ===================================================================
  RCS file: /home/cvs/apr-util/buckets/apr_buckets_file.c,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -d -b -w -u -r1.20 -r1.21
  --- apr_buckets_file.c        2001/01/19 07:02:00     1.20
  +++ apr_buckets_file.c        2001/01/22 23:33:58     1.21
  @@ -94,6 +94,7 @@
       apr_bucket *b = NULL;
       char *buf;
       apr_status_t rv;
  +    apr_off_t length = e->length;
   #if APR_HAS_MMAP
       apr_mmap_t *mm = NULL;
   #endif
  @@ -145,6 +146,7 @@
            free(buf);
               return rv;
           }
  +        length -= *len;
   
           /*
            * Change the current bucket to refer to what we read,
  @@ -153,8 +155,8 @@
           apr_bucket_make_heap(e, buf, *len, 0, NULL); /*XXX: check for 
failure? */
   
           /* If we have more to read from the file, then create another bucket 
*/
  -        if (*len > 0) {
  -            b = apr_bucket_create_file(f, 0, e->length);
  +        if (length > 0) {
  +            b = apr_bucket_create_file(f, (*len) + 1, length);
               APR_BUCKET_INSERT_AFTER(e, b);
           }
   #if APR_HAS_MMAP
  
  
  

Reply via email to