libmicrohttpd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [libmicrohttpd] [PATCH]: MHD_connection_update_event_loop_info sends


From: Vitaliy T
Subject: Re: [libmicrohttpd] [PATCH]: MHD_connection_update_event_loop_info sends INTERNAL_ERROR for suspended connections
Date: Fri, 17 Mar 2017 04:31:13 +0300

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]