diff --git a/CHANGES b/CHANGES index 21553d9502..964139f127 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,9 @@ Changes with Apache 2.4.20 + *) mod_proxy_express: Fix possible use of DB handle after close. PR 59230. + [Petr ] + *) core/util_script: relax alphanumeric filter of enviroment variable names on Windows to allow '(' and ')' for passing PROGRAMFILES(X86) et.al. unadulterated in 64 bit versions of Windows. PR 46751. diff --git a/STATUS b/STATUS index 3728063c90..987a2ddd94 100644 --- a/STATUS +++ b/STATUS @@ -113,11 +113,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - *) mod_proxy_express: Fix possible use of DB handle after close. PR 59230. - trunk patch: http://svn.apache.org/r1737014 - 2.4.x patch: trunk works (modulo CHANGES) - +1: ylavic, trawick, wrowe - *) core: Do not read .htaccess if AllowOverride and AllowOverrideList are "None". PR 58528. trunk patch: http://svn.apache.org/r1737114 diff --git a/modules/proxy/mod_proxy_express.c b/modules/proxy/mod_proxy_express.c index 9904fbbd7e..ec4b94a67d 100644 --- a/modules/proxy/mod_proxy_express.c +++ b/modules/proxy/mod_proxy_express.c @@ -145,13 +145,11 @@ static int xlate_name(request_rec *r) key.dsize = strlen(key.dptr); rv = apr_dbm_fetch(db, key, &val); - apr_dbm_close(db); - if (rv != APR_SUCCESS) { - return DECLINED; + if (rv == APR_SUCCESS) { + backend = apr_pstrmemdup(r->pool, val.dptr, val.dsize); } - - backend = apr_pstrmemdup(r->pool, val.dptr, val.dsize); - if (!backend) { + apr_dbm_close(db); + if (rv != APR_SUCCESS || !backend) { return DECLINED; }