]> granicus.if.org Git - apache/commitdiff
Since we can preserve and further canonicalize the subreq_file name onto
authorWilliam A. Rowe Jr <wrowe@apache.org>
Fri, 31 Aug 2001 22:29:28 +0000 (22:29 +0000)
committerWilliam A. Rowe Jr <wrowe@apache.org>
Fri, 31 Aug 2001 22:29:28 +0000 (22:29 +0000)
  a canonical r->filename, let's do so.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@90860 13f79535-47bb-0310-9956-ffa450edef68

server/request.c

index d44ea4d95aeff47989e3344a3ac324476436d8d5..9e625e2d7405062204ffa0a5ddb7c8c6781318ca 100644 (file)
@@ -1552,13 +1552,17 @@ AP_DECLARE(request_rec *) ap_sub_req_lookup_file(const char *new_file,
     fdir = ap_make_dirstr_parent(rnew->pool, r->filename);
     fdirlen = strlen(fdir);
 
-    /* Translate r->filename
+    /* Translate r->filename, if it was canonical, it stays canonical
      */
+    if (r->canonical_filename != r->filename)
+        r->canonical_filename = NULL;
     if (apr_filepath_merge(&rnew->filename, fdir, new_file,
                            APR_FILEPATH_TRUENAME, rnew->pool) != APR_SUCCESS) {
         rnew->status = HTTP_FORBIDDEN;
         return rnew;
     }
+    if (r->canonical_filename)
+        rnew->canonical_filename = rnew->filename;
 
     /*
      * Check for a special case... if there are no '/' characters in new_file