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

Reply via email to