From 74771a338cfb244fbd5e65431863a28b8d2271d2 Mon Sep 17 00:00:00 2001 From: Dan Liew Date: Fri, 13 Nov 2015 11:37:25 +0000 Subject: [PATCH] [lit] Fix bug where ``lit.util.which()`` would return a directory instead of executable if the argument was found inside a directory contained in PATH. An example where this could cause a problem is if there was a RUN line that ran the ``test`` command and if the user had a directory in their PATH that contained a directory called ``test/`` (that occured before ``/usr/bin/``). Lit would try to use the directory as the executable which would fail with the rather cryptic message. ``` Could not create process due to [Errno 13] Permission denied ``` git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253031 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/lit/lit/util.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/lit/lit/util.py b/utils/lit/lit/util.py index a4233bac7aa..224509ab840 100644 --- a/utils/lit/lit/util.py +++ b/utils/lit/lit/util.py @@ -94,7 +94,7 @@ def which(command, paths = None): for path in paths.split(os.pathsep): for ext in pathext: p = os.path.join(path, command + ext) - if os.path.exists(p): + if os.path.exists(p) and not os.path.isdir(p): return p return None -- 2.34.1