diff options
author | Ben Reser <breser@apache.org> | 2014-06-13 10:34:05 +0200 |
---|---|---|
committer | Ben Reser <breser@apache.org> | 2014-06-13 10:34:05 +0200 |
commit | 3bda0de20f7f3249d1b48879c08670bfb648c1c4 (patch) | |
tree | 3354b19af9e5561484b2450f2a7cdef874ba844e /modules/dav/main/mod_dav.h | |
parent | Follow up r1601943: (diff) | |
download | apache2-3bda0de20f7f3249d1b48879c08670bfb648c1c4.tar.xz apache2-3bda0de20f7f3249d1b48879c08670bfb648c1c4.zip |
Fix PR 56480: PROPFIND walker doesn't encode hrefs properly
Reverts r1529559 partially (specifically the dav_xml_escape_uri) bit.
Reverts r1531505 entirely.
* modules/dav/main/mod_dav.c
(dav_xml_escape_uri): Revert the piece of r1529559 that removes the URI
escaping from this function.
* modules/dav/main/props.c
(dav_do_prop_subreq): Escape the URI before doing a sub request with it.
This resolves some properties like getcontenttype from failing to be
returned for files that contain characters that require encoding in their
path.
* modules/dav/main/mod_dav.h
(dav_resource): Note the inconsistency in the documentation.
* modules/dav/fs/repos.c
(dav_fs_get_resource): Don't use the unparsed_uri to set the uri field of
the resource. This is the correct fix for the double encoding in mod_dav_fs
that led to the dav_xml_escape_uri() change and r1531505.
(dav_fs_walker, dav_fs_append_uri): Revert r1531505 changes.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1602338 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'modules/dav/main/mod_dav.h')
-rw-r--r-- | modules/dav/main/mod_dav.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/modules/dav/main/mod_dav.h b/modules/dav/main/mod_dav.h index 62c21f057f..96088d3406 100644 --- a/modules/dav/main/mod_dav.h +++ b/modules/dav/main/mod_dav.h @@ -386,7 +386,9 @@ typedef struct dav_resource { * REGULAR and WORKSPACE resources, * and is always 1 for WORKING */ - const char *uri; /* the escaped URI for this resource */ + const char *uri; /* the URI for this resource; + * currently has an ABI flaw where sometimes it is + * assumed to be encoded and sometimes not */ dav_resource_private *info; /* the provider's private info */ |