[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [libmicrohttpd] Assertion failure with raw "GET /" request
From: |
Christian Grothoff |
Subject: |
Re: [libmicrohttpd] Assertion failure with raw "GET /" request |
Date: |
Wed, 2 Dec 2020 00:02:53 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 |
I don't think the report was 'mistaken', it was quite accurate and
against the latest release. So no problme ;-).
-Christian
On 12/1/20 11:55 PM, Niels Martignène via libmicrohttpd wrote:
> Hi Christian,
>
> Thanks, and sorry for the mistaken report.
>
> I also tested a version that was cloned from the repository some time after
> 0.9.71, but obviously it was a while ago (times flies) and I should probably
> have pulled before the test...
>
> Regards,
>
> Niels
>
> Le mardi 1 décembre 2020 à 23:29, Christian Grothoff <grothoff@gnunet.org> a
> écrit :
>
>> Hi Niels,
>>
>> I can confirm the issue, alas it was already fixed in Git master (by
>>
>> Evgeny) in October. We should indeed make a new release...
>>
>> (Note: the assertion was basically wrong, so when compiling without
>>
>> assertions means that there is no harm from the issue.)
>>
>> Happy hacking!
>>
>> Christian
>>
>> On 12/1/20 2:24 PM, Niels Martignène via libmicrohttpd wrote:
>>
>>> I have managed to get the following assertion failure when sending a simple
>>> "GET /" request with netcat to a debug build (libmicrohttpd 0.9.71).
>>>
>>> minimal_example: memorypool.c:324: MHD_pool_reallocate: Assertion `old
>>> == ((void *)0) || pool->memory + pool->pos > (uint8_t*) old' failed.
>>>
>>>
>>> I can reproduce this error with the minimal_example.c example. First, build
>>> and start the server with:
>>>
>>> ./configure --enable-asserts
>>> make
>>> src/examples/minimal_example 8888
>>>
>>>
>>> And then, in a separate terminal, run this:
>>>
>>> echo -e "GET /\\r\\n\\r\\n" | nc 127.0.0.1 8888
>>>
>>>
>>> This should trigger the assert and crash the server. The crash does not
>>> happen with "GET / HTTP/1.0".
>