]> source.dussan.org Git - jgit.git/commitdiff
Ensure FS#searchPath only selects executable files 48/184048/2
authorMatthias Sohn <matthias.sohn@sap.com>
Fri, 13 Aug 2021 07:36:26 +0000 (09:36 +0200)
committerMatthias Sohn <matthias.sohn@sap.com>
Tue, 17 Aug 2021 14:48:19 +0000 (16:48 +0200)
On Posix non executable files on the path should be ignored, on Windows
File#canExecute always returns true.

While we are here also add missing braces.

Bug: 575385
Change-Id: I80cd5057bdf9632a17f103db6f1356e975b6e150

org.eclipse.jgit/src/org/eclipse/jgit/util/FS.java

index 0946f645fbfc0d35b84f022c92cf34a6f40ceae4..4a4034794e73e908a007825fbeaa0bcaf5777e71 100644 (file)
@@ -1267,7 +1267,8 @@ public abstract class FS {
 
        /**
         * Searches the given path to see if it contains one of the given files.
-        * Returns the first it finds. Returns null if not found or if path is null.
+        * Returns the first it finds which is executable. Returns null if not found
+        * or if path is null.
         *
         * @param path
         *            List of paths to search separated by File.pathSeparator
@@ -1277,14 +1278,15 @@ public abstract class FS {
         * @since 3.0
         */
        protected static File searchPath(String path, String... lookFor) {
-               if (path == null)
+               if (path == null) {
                        return null;
+               }
 
                for (String p : path.split(File.pathSeparator)) {
                        for (String command : lookFor) {
                                final File file = new File(p, command);
                                try {
-                                       if (file.isFile()) {
+                                       if (file.isFile() && file.canExecute()) {
                                                return file.getAbsoluteFile();
                                        }
                                } catch (SecurityException e) {