From: Ruediger Pluem Date: Mon, 18 Mar 2019 09:16:06 +0000 (+0000) Subject: * Play safe in case we get no name X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=97752cb849b1541d00f16fcea2426fd0ed5680b5;p=apache * Play safe in case we get no name Reverted by r1855742. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1855741 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/ssl/mod_ssl.c b/modules/ssl/mod_ssl.c index 9a2e746040..b08cd96f7e 100644 --- a/modules/ssl/mod_ssl.c +++ b/modules/ssl/mod_ssl.c @@ -491,6 +491,17 @@ static SSLConnRec *ssl_init_connection_ctx(conn_rec *c, { SSLConnRec *sslconn = myConnConfig(c); + /* Reinit dc in any case because it may be r->per_dir_config scoped + * and thus a caller like mod_proxy needs to update it per request. + */ + if (per_dir_config) { + sslconn->dc = ap_get_module_config(per_dir_config, &ssl_module); + } + else { + sslconn->dc = ap_get_module_config(c->base_server->lookup_defaults, + &ssl_module); + } + if (!sslconn) { sslconn = apr_pcalloc(c->pool, sizeof(*sslconn)); @@ -508,17 +519,6 @@ static SSLConnRec *ssl_init_connection_ctx(conn_rec *c, myConnConfigSet(c, sslconn); } - /* Reinit dc in any case because it may be r->per_dir_config scoped - * and thus a caller like mod_proxy needs to update it per request. - */ - if (per_dir_config) { - sslconn->dc = ap_get_module_config(per_dir_config, &ssl_module); - } - else { - sslconn->dc = ap_get_module_config(c->base_server->lookup_defaults, - &ssl_module); - } - return sslconn; } diff --git a/server/request.c b/server/request.c index 052e20b3dd..a448fa7af5 100644 --- a/server/request.c +++ b/server/request.c @@ -195,7 +195,9 @@ AP_DECLARE(int) ap_process_request_internal(request_rec *r) ap_getparents(r->uri); /* OK --- shrinking transformations... */ if (sconf->merge_slashes != AP_CORE_CONFIG_OFF) { ap_no2slash(r->uri); - ap_no2slash(r->parsed_uri.path); + if (r->parsed_uri.path) { + ap_no2slash(r->parsed_uri.path); + } } /* All file subrequests are a huge pain... they cannot bubble through the diff --git a/server/util.c b/server/util.c index 89c5abef80..8633c6294a 100644 --- a/server/util.c +++ b/server/util.c @@ -573,6 +573,10 @@ AP_DECLARE(void) ap_no2slash_ex(char *name, int is_fs_path) char *d, *s; + if (!name || !*name) { + return; + } + s = d = name; #ifdef HAVE_UNC_PATHS