The GitHub Actions job "autoconf" on subversion.git/proxy-move-copy-fix has 
failed.
Run started by GitHub user asf-gitbox-commits (triggered by asf-gitbox-commits).

Head commit for run:
ba430ab43e1bad1eb555a01d16637ea4f2e1660a / Jordan Peck <[email protected]>
Fix HTTP requests against <Location> paths with escapable characters.

This isn't really part of the mod_dav_svn proxy fixes, but this fix is
required to test the fix in 1936011. HTTPv2 commits failed with a 400
Bad Request against any mod_dav_svn repository whose <Location> path
contains a URI-escapable character.

get_resource() expects its ROOT_PATH argument in the decoded domain: it
strips it from the decoded r->uri (ap_stripprefix) and re-encodes it
for href output itself.  mod_dav's own method dispatch passes its
per-dir config, which is decoded, which is why plain DAV methods
(GET, PROPFIND, OPTIONS) always worked.  But three mod_dav_svn-internal
callers passed dav_svn__get_root_dir(), which is stored canonical and
URI-encoded.  Under "/svn repo", stripping "/svn%20repo" from
"/svn repo/!svn/me" fails, the URI parses as an ordinary repository
path, and dav_svn__method_post() bogusly rejects the transaction-
creation POST.  The same mismatch garbled the %f log path in
translate_name and made the SVNListParentPath root comparison never
match.

The domain contract, now honored by all in-tree callers: anything
comparing the stored root dir against r->uri must decode it first,
anything building client-visible URIs from it uses it as-is.

Regression-tested, updated tests coming in follow up commit 

* subversion/mod_dav_svn/repos.c
  (dav_svn__method_post): Decode the stored root dir before handing it
   to get_resource().
* subversion/mod_dav_svn/mod_dav_svn.c
  (dav_svn__translate_name): Likewise for dav_svn_split_uri().
* subversion/mod_dav_svn/util.c
  (dav_svn__is_parentpath_list): Decode before comparing against r->uri.


git-svn-id: 
https://svn.apache.org/repos/asf/subversion/branches/proxy-move-copy-fix@1936013
 13f79535-47bb-0310-9956-ffa450edef68

Report URL: https://github.com/apache/subversion/actions/runs/28974303614

With regards,
GitHub Actions via GitBox

Reply via email to