[PATCH STABLE] subrepo: avoid false unsafe path detection on Windows
Matt Harbison
mharbison72 at gmail.com
Wed Feb 6 02:04:00 UTC 2019
# HG changeset patch
# User Matt Harbison <matt_harbison at yahoo.com>
# Date 1549417854 18000
# Tue Feb 05 20:50:54 2019 -0500
# Branch stable
# Node ID 0e18c6ec895542394c0ad18c380bf3bbd4ba4d9b
# Parent 8b2892d5a9f2c06c998c977015a9ad3e3a3c9b5f
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
diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py
--- a/mercurial/subrepo.py
+++ b/mercurial/subrepo.py
@@ -405,7 +405,7 @@ class hgsubrepo(abstractsubrepo):
super(hgsubrepo, self).__init__(ctx, path)
self._state = state
r = ctx.repo()
- root = r.wjoin(path)
+ root = os.path.realpath(r.wjoin(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.
More information about the Mercurial-devel
mailing list