Hi,
Raised this some months ago but response was left than deafening, and
advice says 'have another go', so...

In apr\memory\unix\apr_pools.c:

APR_DECLARE(apr_pool_t *) apr_pool_parent_get(apr_pool_t *pool)
{
#ifdef NETWARE
    /* On NetWare, don't return the global_pool, return the application pool
       as the top most pool */
    if (pool->parent == global_pool)
        return pool;
    else
#endif
    return pool->parent;
}

in apr\dbd\apr_dbd.c:

    for (parent = pool;  parent; parent = apr_pool_parent_get(pool))
         pool = parent;

Cannot see how NetWare can escape this loop if apr_pool_parent_get()
returns the same pool passed in to the function.

Either (in NetWare case):

- apr_pool_parent_get() has to return something other than the same
'pool' to allow the loop to exit, OR

- the loop needs to determine if it got the same pool back (at least in
NetWare case) and exit the loop.

Comments please.
Regards,
Norm

Reply via email to