# HG changeset patch # User Danek Duvall # Date 1464387038 25200 # Node ID 1f8b861ba15c0306f253ddaa1dfc86e7f23116e8 # Parent b0b85d8695cbd5fd6d134395afcb0caccb5fb20d tests-subrepo-git: make the "pwned" message output in a stable order The "pwned" message from this test gets gets sent to stderr, and so may get emitted in different places from run to run in the rest of mercurial's output. This patch forces the message to go to a specific file instead, whose existence and contents we can examine at a stable point in the test's execution. diff -r b0b85d8695cb -r 1f8b861ba15c tests/test-subrepo-git.t --- a/tests/test-subrepo-git.t Fri May 27 11:14:29 2016 -0700 +++ b/tests/test-subrepo-git.t Fri May 27 15:10:38 2016 -0700 @@ -1135,7 +1135,7 @@ test for Git CVE-2016-3068 $ hg init malicious-subrepository $ cd malicious-subrepository - $ echo "s = [git]ext::sh -c echo% pwned% >&2" > .hgsub + $ echo "s = [git]ext::sh -c echo% pwned% >pwned.txt" > .hgsub $ git init s Initialized empty Git repository in $TESTTMP/tc/malicious-subrepository/s/.git/ $ cd s @@ -1145,23 +1145,27 @@ $ hg add .hgsub $ hg commit -m "add subrepo" $ cd .. + $ rm -f pwned.txt $ env -u GIT_ALLOW_PROTOCOL hg clone malicious-subrepository malicious-subrepository-protected Cloning into '$TESTTMP/tc/malicious-subrepository-protected/s'... (glob) fatal: transport 'ext' not allowed updating to branch default - cloning subrepo s from ext::sh -c echo% pwned% >&2 + cloning subrepo s from ext::sh -c echo% pwned% >pwned.txt abort: git clone error 128 in s (in subrepo s) [255] + $ test -f pwned.txt && cat pwned.txt || true whitelisting of ext should be respected (that's the git submodule behaviour) + $ rm -f pwned.txt $ env GIT_ALLOW_PROTOCOL=ext hg clone malicious-subrepository malicious-subrepository-clone-allowed Cloning into '$TESTTMP/tc/malicious-subrepository-clone-allowed/s'... (glob) - pwned fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. updating to branch default - cloning subrepo s from ext::sh -c echo% pwned% >&2 + cloning subrepo s from ext::sh -c echo% pwned% >pwned.txt abort: git clone error 128 in s (in subrepo s) [255] + $ cat pwned.txt + pwned