On Mon, Nov 23, 2020 at 01:24:39PM +0100, Yann Ylavic wrote: > --- srclib/apr-trunk/memory/unix/apr_pools.c (revision 1883742) > +++ srclib/apr-trunk/memory/unix/apr_pools.c (working copy) > @@ -1951,10 +1951,8 @@ APR_DECLARE(void) apr_pool_clear_debug(apr_pool_t > > static void pool_destroy_debug(apr_pool_t *pool, const char *file_line) > { > - apr_pool_check_lifetime(pool); > + apr_pool_clear_debug(pool, file_line); > > - pool_clear_debug(pool, file_line); > - > #if (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) > apr_pool_log_event(pool, "DESTROY", file_line, 1); > #endif /* (APR_POOL_DEBUG & APR_POOL_DEBUG_VERBOSE) */): > -- > > No more use-after-free, while without this patch there are many ones > (like in the attached ASAN report). > Note: pool_clear_debug is not mutex protected, while apr_pool_clear_debug is.
Nice work! > Could we run APR_POOL_DEBUG test --with-inclued-apr (only) on travis, > or fetching the sources causes issues still? Do you mean a different APR/APR-util tag/branch than 1.7.0/1.6.1? The only restriction is that we can't test LDAP/pool-debug (usefully) if building against APR trunk. We can switch to building against 1.7.x branches, it works but adds a few minutes to the build time because we can't cache the installs in that specific case. BTW do you have an idiots guide to building/testing httpd with ASAN? We could add that to travis too. Regards, Joe