From: Ruediger Pluem Date: Fri, 20 Jul 2018 19:36:01 +0000 (+0000) Subject: * Always retrieve conditional function. static variable might contain garbage if... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2acd655200594f3281c56c28db6f73dadae12fa9;p=apache * Always retrieve conditional function. static variable might contain garbage if module was reloaded in a static build. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1836383 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/proxy/balancers/mod_lbmethod_heartbeat.c b/modules/proxy/balancers/mod_lbmethod_heartbeat.c index d7462608a4..7aeaf71248 100644 --- a/modules/proxy/balancers/mod_lbmethod_heartbeat.c +++ b/modules/proxy/balancers/mod_lbmethod_heartbeat.c @@ -273,13 +273,11 @@ static proxy_worker *find_best_hb(proxy_balancer *balancer, ap_get_module_config(r->server->module_config, &lbmethod_heartbeat_module); + ap_proxy_retry_worker_fn = + APR_RETRIEVE_OPTIONAL_FN(ap_proxy_retry_worker); if (!ap_proxy_retry_worker_fn) { - ap_proxy_retry_worker_fn = - APR_RETRIEVE_OPTIONAL_FN(ap_proxy_retry_worker); - if (!ap_proxy_retry_worker_fn) { - /* can only happen if mod_proxy isn't loaded */ - return NULL; - } + /* can only happen if mod_proxy isn't loaded */ + return NULL; } apr_pool_create(&tpool, r->pool); diff --git a/modules/proxy/mod_proxy_balancer.c b/modules/proxy/mod_proxy_balancer.c index 347481a323..ad8d3c3e24 100644 --- a/modules/proxy/mod_proxy_balancer.c +++ b/modules/proxy/mod_proxy_balancer.c @@ -857,14 +857,12 @@ static int balancer_post_config(apr_pool_t *pconf, apr_pool_t *plog, return OK; } + ap_proxy_retry_worker_fn = + APR_RETRIEVE_OPTIONAL_FN(ap_proxy_retry_worker); if (!ap_proxy_retry_worker_fn) { - ap_proxy_retry_worker_fn = - APR_RETRIEVE_OPTIONAL_FN(ap_proxy_retry_worker); - if (!ap_proxy_retry_worker_fn) { - ap_log_error(APLOG_MARK, APLOG_EMERG, 0, s, APLOGNO(02230) - "mod_proxy must be loaded for mod_proxy_balancer"); - return !OK; - } + ap_log_error(APLOG_MARK, APLOG_EMERG, 0, s, APLOGNO(02230) + "mod_proxy must be loaded for mod_proxy_balancer"); + return !OK; } /* diff --git a/modules/proxy/mod_proxy_http.c b/modules/proxy/mod_proxy_http.c index 0a84968bcc..8931759a3d 100644 --- a/modules/proxy/mod_proxy_http.c +++ b/modules/proxy/mod_proxy_http.c @@ -2171,14 +2171,12 @@ static int proxy_http_post_config(apr_pool_t *pconf, apr_pool_t *plog, return OK; } + ap_proxy_clear_connection_fn = + APR_RETRIEVE_OPTIONAL_FN(ap_proxy_clear_connection); if (!ap_proxy_clear_connection_fn) { - ap_proxy_clear_connection_fn = - APR_RETRIEVE_OPTIONAL_FN(ap_proxy_clear_connection); - if (!ap_proxy_clear_connection_fn) { - ap_log_error(APLOG_MARK, APLOG_EMERG, 0, s, APLOGNO(02477) - "mod_proxy must be loaded for mod_proxy_http"); - return !OK; - } + ap_log_error(APLOG_MARK, APLOG_EMERG, 0, s, APLOGNO(02477) + "mod_proxy must be loaded for mod_proxy_http"); + return !OK; } return OK;