The question is not closed.
Applied to recent commits from
a10c64c79337431924830db9e82f6c1c70994942 and early ones.
I have started deeper investigation of the problem. It leads to the
MHD_pool_reallocate() function from src/microhttpd/memorypool.c
I have found that the next check is interpreted by MHD differently,
depended on who or what is calling the function:
273 if ((pool->pos + asize >= pool->pos) &&
274 (pool->pos + asize <= pool->end))
275 {
1. Sometimes the same check is ignored by MHD.
2. And if MHD_pool_reallocate() was called by try_grow_read_buffer()
the INTERNAL_ERROR will be send.
For example, I got next values:
pool: 0x0x8001dd50
pool->pos: 66565
asize: 67376
pool->end: 130976
First time this "error" was ingored, and later the same pool address
became "bad".
Can't say which function is exactly ignores that MHD_pool_reallocate()
was "failed". All I know that it is not fatal for the server. Am I
right? :)
So, either we need to fix MHD_pool_reallocate(), either to fix
try_grow_read_buffer() or even fix the problem differently.
If I will find anything else, I will message.
--
With Best Regards,
Vitaliy V. Tokarev