Loading include/http_request.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -132,7 +132,7 @@ AP_DECLARE(request_rec *) ap_sub_req_lookup_file(const char *new_file, * The file info passed must include the name, and must have the same relative * The file info passed must include the name, and must have the same relative * directory as the current request. * directory as the current request. */ */ AP_DECLARE(request_rec *) ap_sub_req_lookup_dirent(apr_finfo_t *finfo, AP_DECLARE(request_rec *) ap_sub_req_lookup_dirent(const apr_finfo_t *finfo, const request_rec *r, const request_rec *r, ap_filter_t *next_filter); ap_filter_t *next_filter); /** /** Loading server/request.c +4 −5 Original line number Original line Diff line number Diff line Loading @@ -954,10 +954,11 @@ AP_DECLARE(request_rec *) ap_sub_req_lookup_uri(const char *new_file, return ap_sub_req_method_uri("GET", new_file, r, next_filter); return ap_sub_req_method_uri("GET", new_file, r, next_filter); } } AP_DECLARE(request_rec *) ap_sub_req_lookup_dirent(apr_finfo_t *dirent, AP_DECLARE(request_rec *) ap_sub_req_lookup_dirent(const apr_finfo_t *dirent, const request_rec *r, const request_rec *r, ap_filter_t *next_filter) ap_filter_t *next_filter) { { apr_status_t rv; request_rec *rnew; request_rec *rnew; int res; int res; char *fdir; char *fdir; Loading @@ -982,13 +983,12 @@ AP_DECLARE(request_rec *) ap_sub_req_lookup_dirent(apr_finfo_t *dirent, */ */ udir = ap_make_dirstr_parent(rnew->pool, r->uri); udir = ap_make_dirstr_parent(rnew->pool, r->uri); apr_status_t rv; rnew->uri = ap_make_full_path(rnew->pool, udir, dirent->name); rnew->uri = ap_make_full_path(rnew->pool, udir, dirent->name); rnew->filename = ap_make_full_path(rnew->pool, fdir, dirent->name); rnew->filename = ap_make_full_path(rnew->pool, fdir, dirent->name); ap_parse_uri(rnew, rnew->uri); /* fill in parsed_uri values */ ap_parse_uri(rnew, rnew->uri); /* fill in parsed_uri values */ if ((dirent->finfo & APR_FINFO_MIN) != APR_FINFO_MIN) { if ((dirent->valid & APR_FINFO_MIN) != APR_FINFO_MIN) { if (((rv = apr_stat(&rnew->finfo, rnew->filename, if (((rv = apr_stat(&rnew->finfo, rnew->filename, APR_FINFO_MIN, rnew->pool)) != APR_SUCCESS) APR_FINFO_MIN, rnew->pool)) != APR_SUCCESS) && (rv != APR_INCOMPLETE)) { && (rv != APR_INCOMPLETE)) { Loading @@ -996,8 +996,7 @@ AP_DECLARE(request_rec *) ap_sub_req_lookup_dirent(apr_finfo_t *dirent, } } } } else { else { r->finfo = apr_palloc(rnew->pool, sizeof(apr_finfo_t)); memcpy (&rnew->finfo, dirent, sizeof(apr_finfo_t)); memcpy (r->finfo, dirent); } } if ((res = check_safe_file(rnew))) { if ((res = check_safe_file(rnew))) { Loading Loading
include/http_request.h +1 −1 Original line number Original line Diff line number Diff line Loading @@ -132,7 +132,7 @@ AP_DECLARE(request_rec *) ap_sub_req_lookup_file(const char *new_file, * The file info passed must include the name, and must have the same relative * The file info passed must include the name, and must have the same relative * directory as the current request. * directory as the current request. */ */ AP_DECLARE(request_rec *) ap_sub_req_lookup_dirent(apr_finfo_t *finfo, AP_DECLARE(request_rec *) ap_sub_req_lookup_dirent(const apr_finfo_t *finfo, const request_rec *r, const request_rec *r, ap_filter_t *next_filter); ap_filter_t *next_filter); /** /** Loading
server/request.c +4 −5 Original line number Original line Diff line number Diff line Loading @@ -954,10 +954,11 @@ AP_DECLARE(request_rec *) ap_sub_req_lookup_uri(const char *new_file, return ap_sub_req_method_uri("GET", new_file, r, next_filter); return ap_sub_req_method_uri("GET", new_file, r, next_filter); } } AP_DECLARE(request_rec *) ap_sub_req_lookup_dirent(apr_finfo_t *dirent, AP_DECLARE(request_rec *) ap_sub_req_lookup_dirent(const apr_finfo_t *dirent, const request_rec *r, const request_rec *r, ap_filter_t *next_filter) ap_filter_t *next_filter) { { apr_status_t rv; request_rec *rnew; request_rec *rnew; int res; int res; char *fdir; char *fdir; Loading @@ -982,13 +983,12 @@ AP_DECLARE(request_rec *) ap_sub_req_lookup_dirent(apr_finfo_t *dirent, */ */ udir = ap_make_dirstr_parent(rnew->pool, r->uri); udir = ap_make_dirstr_parent(rnew->pool, r->uri); apr_status_t rv; rnew->uri = ap_make_full_path(rnew->pool, udir, dirent->name); rnew->uri = ap_make_full_path(rnew->pool, udir, dirent->name); rnew->filename = ap_make_full_path(rnew->pool, fdir, dirent->name); rnew->filename = ap_make_full_path(rnew->pool, fdir, dirent->name); ap_parse_uri(rnew, rnew->uri); /* fill in parsed_uri values */ ap_parse_uri(rnew, rnew->uri); /* fill in parsed_uri values */ if ((dirent->finfo & APR_FINFO_MIN) != APR_FINFO_MIN) { if ((dirent->valid & APR_FINFO_MIN) != APR_FINFO_MIN) { if (((rv = apr_stat(&rnew->finfo, rnew->filename, if (((rv = apr_stat(&rnew->finfo, rnew->filename, APR_FINFO_MIN, rnew->pool)) != APR_SUCCESS) APR_FINFO_MIN, rnew->pool)) != APR_SUCCESS) && (rv != APR_INCOMPLETE)) { && (rv != APR_INCOMPLETE)) { Loading @@ -996,8 +996,7 @@ AP_DECLARE(request_rec *) ap_sub_req_lookup_dirent(apr_finfo_t *dirent, } } } } else { else { r->finfo = apr_palloc(rnew->pool, sizeof(apr_finfo_t)); memcpy (&rnew->finfo, dirent, sizeof(apr_finfo_t)); memcpy (r->finfo, dirent); } } if ((res = check_safe_file(rnew))) { if ((res = check_safe_file(rnew))) { Loading