Skip to content

Commit

Permalink
Follow up to r1879079: merge slashes (if configured to) before pre_trans
Browse files Browse the repository at this point in the history
There are few cases (if any) where multiple slashes have different semantics
than a single one, and it's always been like that for proxy_trans anyway.

This allows for better directory/location/if walk caching and is less confusing
for their users.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1879117 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
ylavic committed Jun 23, 2020
1 parent 256108b commit aaf7e3e
Showing 1 changed file with 6 additions and 11 deletions.
17 changes: 6 additions & 11 deletions server/request.c
Expand Up @@ -196,7 +196,10 @@ AP_DECLARE(int) ap_process_request_internal(request_rec *r)

if (file_req) {
/* File subrequests can have a relative path. */
normalize_flags = AP_NORMALIZE_ALLOW_RELATIVE;
normalize_flags |= AP_NORMALIZE_ALLOW_RELATIVE;
}
if (sconf->merge_slashes != AP_CORE_CONFIG_OFF) {
normalize_flags |= AP_NORMALIZE_MERGE_SLASHES;
}

if (r->parsed_uri.path) {
Expand Down Expand Up @@ -259,19 +262,11 @@ AP_DECLARE(int) ap_process_request_internal(request_rec *r)
}

if (d->allow_encoded_slashes && d->decode_encoded_slashes) {
/* Decoding slashes might have created new /./ and /../
* segments (e.g. "/.%2F/"), so re-normalize. If asked to,
* merge slashes while at it.
/* Decoding slashes might have created new // or /./ or /../
* segments (e.g. "/.%2F/"), so re-normalize.
*/
if (sconf->merge_slashes != AP_CORE_CONFIG_OFF) {
normalize_flags |= AP_NORMALIZE_MERGE_SLASHES;
}
ap_normalize_path(r->parsed_uri.path, normalize_flags);
}
else if (sconf->merge_slashes != AP_CORE_CONFIG_OFF) {
/* We still didn't merged slashes yet, do it now. */
ap_no2slash(r->parsed_uri.path);
}
}

/* Same, translate_name is not suited for file subrequests */
Expand Down

0 comments on commit aaf7e3e

Please sign in to comment.