diff vendor/symfony/finder/Finder.php @ 13:5fb285c0d0e3

Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've been lucky to get away with this so far, as we don't support self-registration which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5 was vulnerable to.
author Chris Cannam
date Mon, 23 Apr 2018 09:33:26 +0100
parents 7a779792577d
children 129ea1e6d783
line wrap: on
line diff
--- a/vendor/symfony/finder/Finder.php	Fri Feb 23 15:52:07 2018 +0000
+++ b/vendor/symfony/finder/Finder.php	Mon Apr 23 09:33:26 2018 +0100
@@ -297,6 +297,10 @@
     /**
      * Excludes directories.
      *
+     * Directories passed as argument must be relative to the ones defined with the `in()` method. For example:
+     *
+     *     $finder->in(__DIR__)->exclude('ruby');
+     *
      * @param string|array $dirs A directory path or an array of directories
      *
      * @return $this
@@ -313,6 +317,8 @@
     /**
      * Excludes "hidden" directories and files (starting with a dot).
      *
+     * This option is enabled by default.
+     *
      * @param bool $ignoreDotFiles Whether to exclude "hidden" files or not
      *
      * @return $this
@@ -333,6 +339,8 @@
     /**
      * Forces the finder to ignore version control directories.
      *
+     * This option is enabled by default.
+     *
      * @param bool $ignoreVCS Whether to exclude VCS files or not
      *
      * @return $this
@@ -532,9 +540,9 @@
 
         foreach ((array) $dirs as $dir) {
             if (is_dir($dir)) {
-                $resolvedDirs[] = $dir;
+                $resolvedDirs[] = $this->normalizeDir($dir);
             } elseif ($glob = glob($dir, (defined('GLOB_BRACE') ? GLOB_BRACE : 0) | GLOB_ONLYDIR)) {
-                $resolvedDirs = array_merge($resolvedDirs, $glob);
+                $resolvedDirs = array_merge($resolvedDirs, array_map(array($this, 'normalizeDir'), $glob));
             } else {
                 throw new \InvalidArgumentException(sprintf('The "%s" directory does not exist.', $dir));
             }
@@ -720,4 +728,16 @@
 
         return $iterator;
     }
+
+    /**
+     * Normalizes given directory names by removing trailing slashes.
+     *
+     * @param string $dir
+     *
+     * @return string
+     */
+    private function normalizeDir($dir)
+    {
+        return rtrim($dir, '/'.\DIRECTORY_SEPARATOR);
+    }
 }