Roy T. Fielding wrote:
On Dec 30, 2005, at 5:51 PM, Brian Pane wrote:

I haven't been able to find the bug yet.  As a next step, I'll try  using
valgrind on a build with pool debugging enabled.


On entry to allocator_free, if

   (node == node->next && node->index > current_free_index)

is true, then the do { } while ((node = next) != NULL);
will go into an infinite loop.  This is because

        if (max_free_index != APR_ALLOCATOR_MAX_FREE_UNLIMITED
            && index > current_free_index) {
            node->next = freelist;
            freelist = node;
        }

does not update current_free_index.  I don't know if that is the
problem, but it may be the symptom.

....Roy

Hmm, I'll go over the pools code once more to see if there really
is an obscure edge case bug hitting us.

Sander

Reply via email to