On Thu, 9 Aug 2001, Doug MacEachern wrote:
> Index: srclib/apr-util/buckets/apr_brigade.c
> ===================================================================
> RCS file: /home/cvs/apr-util/buckets/apr_brigade.c,v
> retrieving revision 1.22
> diff -u -r1.22 apr_brigade.c
> --- srclib/apr-util/buckets/apr_brigade.c 2001/08/08 22:24:04 1.22
> +++ srclib/apr-util/buckets/apr_brigade.c 2001/08/10 03:18:37
> @@ -181,7 +181,7 @@
> }
> }
> if (point == e->length) {
> - *after_point = APR_BUCKET_NEXT(e);
> + *after_point = e;
> return APR_SUCCESS;
> }
> point -= e->length;
>
I haven't looked at the rest of the patch yet, but I just glanced at this
part and can tell you it isn't right. If point==e->length, that means
that the partition that was requested is at the end of the data in the
current bucket. brigade_partition is supposed to make sure that there is
a bucket boundary at the requested offset, and after_point is the first
bucket AFTER that offset. So APR_BUCKET_NEXT(e) is definitely the right
thing here.
The only reason Ryan set it to e in the other two places is that they're
error conditions and e might not have been fully read, although this isn't
really necessary any more since Ryan reverted his patch to allow
nonblocking reads.
--Cliff
--------------------------------------------------------------
Cliff Woolley
[EMAIL PROTECTED]
Charlottesville, VA