subrepo: avoid false unsafe path detection on Windows stable
authorMatt Harbison <matt_harbison@yahoo.com>
Tue, 05 Feb 2019 20:50:54 -0500
branchstable
changeset 41583 87a6e3c953e0
parent 41460 8b2892d5a9f2
child 41613 8f0e8b179842
subrepo: avoid false unsafe path detection on Windows Subrepo paths are not normalized for the OS, so what was happening in the subsequent root path check was: root -> $TESTTMP\issue1852a\sub/repo util.expandpath(...) -> $TESTTMP\issue1852a\sub/repo os.path.realpath(...) -> $TESTTMP\issue1852a\sub\repo
mercurial/subrepo.py
--- a/mercurial/subrepo.py	Fri Feb 01 13:44:09 2019 -0500
+++ b/mercurial/subrepo.py	Tue Feb 05 20:50:54 2019 -0500
@@ -405,7 +405,7 @@
         super(hgsubrepo, self).__init__(ctx, path)
         self._state = state
         r = ctx.repo()
-        root = r.wjoin(path)
+        root = r.wjoin(util.localpath(path))
         create = allowcreate and not r.wvfs.exists('%s/.hg' % path)
         # repository constructor does expand variables in path, which is
         # unsafe since subrepo path might come from untrusted source.