From b0c868c0148162beacf5f42eb24a42d62abbc1f1 Mon Sep 17 00:00:00 2001 From: fiasco <fiasco@188162.no-reply.drupal.org> Date: Wed, 30 Dec 2015 20:09:04 +0100 Subject: [PATCH] Issue #2309471 by Josh Waihi: File Fetcher doesn't obey allowed extensions --- plugins/FeedsFileFetcher.inc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/FeedsFileFetcher.inc b/plugins/FeedsFileFetcher.inc index 6f1b3107..a3b415c9 100644 --- a/plugins/FeedsFileFetcher.inc +++ b/plugins/FeedsFileFetcher.inc @@ -79,15 +79,15 @@ class FeedsFileFetcher extends FeedsFetcher { * no files could be found. Never contains directories. */ protected function listFiles($dir) { - $dir = file_stream_wrapper_uri_normalize($dir); + // Seperate out string into array of extensions. Make sure its regex safe. + $config = $this->getConfig(); + $extensions = array_filter(array_map('preg_quote', explode(' ', $config['allowed_extensions']))); + $regex = '/\.(' . implode('|', $extensions) . ')$/'; $files = array(); - if ($items = @scandir($dir)) { - foreach ($items as $item) { - if (is_file("$dir/$item") && strpos($item, '.') !== 0) { - $files[] = "$dir/$item"; - } - } + foreach (file_scan_directory($dir, $regex) as $file) { + $files[] = $file->uri; } + return $files; } -- GitLab