Re: Endless loop in split_on_bdry() of library/parser_multipart.c?
Joe Schaefer <[email protected]>
| Newsgroups | gmane.comp.apache.apreq |
|---|---|
| Message-ID | <[email protected]> |
"Philip M. Gollucci" <[email protected]> writes: > do { > apr_bucket *f = APR_BRIGADE_FIRST(in); > APR_BUCKET_REMOVE(f); > APR_BRIGADE_INSERT_TAIL(out, f); > } while (e != APR_BRIGADE_FIRST(in)); This loop appends all the buckets before e onto the end of out. > > apr_bucket *f = APR_RING_FIRST(&in->list); > apr_bucket *l = APR_RING_LAST(&in->list); That l is wrong, it should point at APR_BUCKET_PREV(e) (which is not the sentinel). > > APR_RING_UNSPLICE(f, l, link); > APR_RING_SPLICE_TAIL(&out->list, f, l, apr_bucket, link); > This is the right approach, I think. But the person who'd be in the best place to test/commit it is Bojan. Just be sure to bump the patch level in apreq_version.h, and add a comment to CHANGES. -- Joe Schaefer