On Tue, Jun 26, 2018 at 07:15:45PM -0700, Elijah Newren wrote: > Crazy idea: maybe we could defang it a little more thoroughly with > something like the following (apologies in advance if gmail whitespace > damages this): > > diff --git a/t/test-lib.sh b/t/test-lib.sh > index 28315706be..7fda08a90a 100644 > --- a/t/test-lib.sh > +++ b/t/test-lib.sh > @@ -675,7 +675,7 @@ test_run_ () { > trace= > # 117 is magic because it is unlikely to match the exit > # code of other programs > - if test "OK-117" != "$(test_eval_ "(exit 117) && > $1${LF}${LF}echo OK-\$?" 3>&1)" > + if test "OK-117" != "$(test_eval_ "cd() { return 0; } > && PATH=/dev/null && export PATH && (exit 117) && $1${LF}${LF}echo > OK-\$?" 3>&1)" Clever. We'd still run shell builtins, which is why you need the cd() above. There may be others, but at least it narrows things down. Unless the shell is busybox or something, and implements everything as a builtin. :) I agree on the point elsewhere of returning non-zero (and the items missing from PATH should do that, which is good). -Peff