[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [libmicrohttpd] Assertion failure with raw "GET /" request
From: |
Niels Martignène |
Subject: |
Re: [libmicrohttpd] Assertion failure with raw "GET /" request |
Date: |
Tue, 01 Dec 2020 22:55:20 +0000 |
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".