Re: [RESULT: PASS] [VOTE] Release libapreq2-2.17

Ed Sabol <[email protected]> Thu, 27 Oct 2022 17:08:35 -0400
Newsgroups gmane.comp.apache.mod-perl.devel
Message-ID <[email protected]>
On Oct 12, 2022, at 9:47 AM, Yann Ylavic <[email protected]> wrote:
>=20
> On Thu, Sep 29, 2022 at 1:16 PM Steve Hay <[email protected]> =
wrote:
>>=20
>> On Thu, 25 Aug 2022 at 09:58, Joe Orton <[email protected]> wrote:
>>>=20
>>> Thanks for testing. The release is approved:
>>>=20
>>> PMC votes: +1 from ylavic, jfclere, jorton
>>>=20
>>> I will promote the release and announce it.
>>>=20
>>=20
>> Thanks for this release. I didn't get round to uploading it to CPAN
>> yet, but a bug report has come in for it anyway:
>>=20
>> https://rt.cpan.org/Public/Bug/Display.html?id=3D144470
>=20
> Do we have an example of a payload/upload which does not pass apreq's
> multipart parsing in 2.17?

I think the reporter is saying any zero-length file will trigger the =
hang? Have you tried testing multipart uploads with one of the uploads =
being a zero-length file, Yann?

I've looked over the diffs between 2.16 and 2.17. I noticed that several =
loops in consume_header_line() in library/parser_header.c have changed =
from

while (nlen > 0) { ... }

to

do { ... } while (nlen > 0);

(including glen and other variants) and the following lines were =
removed:

    if (nlen =3D=3D 0)
        return APR_EBADARG;

With little familiarity with the code, I naively wonder if either or =
both of those might be the cause since the nlen =3D=3D 0 case may not be =
handled now?

Of course, I would really expect the problem to be in =
library/parser_multipart.c, and there are lots of changes there but =
nothing that caught my eye as someone unfamiliar with the code.

Thanks,
Ed