From: William A. Rowe Jr Date: Thu, 30 Aug 2001 20:48:06 +0000 (+0000) Subject: Fix the new code (not currently enabled) for directory_walk X-Git-Tag: 2.0.26~374 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=515b1522d7c6271e6a5821374e1ecbd03c099355;p=apache Fix the new code (not currently enabled) for directory_walk git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@90823 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/server/request.c b/server/request.c index 5d1b383143..321e0a61c9 100644 --- a/server/request.c +++ b/server/request.c @@ -669,7 +669,6 @@ AP_DECLARE(int) ap_directory_walk(request_rec *r) unsigned int seg; int res; ap_conf_vector_t *entry_config; - ap_conf_vector_t *this_conf; core_dir_config *entry_core; apr_status_t rv; apr_size_t buflen; @@ -677,11 +676,13 @@ AP_DECLARE(int) ap_directory_walk(request_rec *r) char *delim; /* + * XXX: Better (faster) tests needed!!! + * * Are we dealing with a file? If not, the handler needed to register * a hook to escape from our walking the file. Since they haven't, we * are going to assume the worst and refuse to proceed. */ - if (r->filename == NULL || !ap_os_is_path_absolute(r->filename)) { + if (r->filename == NULL || !ap_os_is_path_absolute(r->pool, r->filename)) { ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, 0, r, "Module bug? Request filename path %s is missing or " "or not absolute for uri %s", @@ -715,13 +716,11 @@ AP_DECLARE(int) ap_directory_walk(request_rec *r) r->finfo.valid = APR_FINFO_TYPE; r->finfo.filetype = APR_DIR; /* It's the root, of course it's a dir */ } else { - if (r->filename == NULL || !ap_os_is_path_absolute(r->filename)) { - ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, 0, r, - "Config bug? Request filename path %s is invalid or " - "or not absolute for uri %s", - r->filename, r->uri); - return HTTP_INTERNAL_SERVER_ERROR; - } + ap_log_rerror(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, 0, r, + "Config bug? Request filename path %s is invalid or " + "or not absolute for uri %s", + r->filename, r->uri); + return HTTP_INTERNAL_SERVER_ERROR; } /* @@ -765,7 +764,7 @@ AP_DECLARE(int) ap_directory_walk(request_rec *r) if (entry_core->d_components && (entry_core->d_is_fnmatch ? (apr_fnmatch(entry_dir, r->filename, FNM_PATHNAME) != APR_SUCCESS) - : (strcmp(r->filename, entry_dir) != 0)) { + : (strcmp(r->filename, entry_dir) != 0))) { continue; }