From f75f3ec4870dfbaa1662b82058f42814dbede25b Mon Sep 17 00:00:00 2001 From: Fritz Michael Gschwantner Date: Thu, 8 Aug 2024 21:13:19 +0100 Subject: [PATCH 1/2] also check PATH if open_basedir is set --- .../Component/Process/ExecutableFinder.php | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/Symfony/Component/Process/ExecutableFinder.php b/src/Symfony/Component/Process/ExecutableFinder.php index f392c962e3130..fd72b21cf41ba 100644 --- a/src/Symfony/Component/Process/ExecutableFinder.php +++ b/src/Symfony/Component/Process/ExecutableFinder.php @@ -48,9 +48,13 @@ public function addSuffix(string $suffix) */ public function find(string $name, ?string $default = null, array $extraDirs = []) { - if (\ini_get('open_basedir')) { - $searchPath = array_merge(explode(\PATH_SEPARATOR, \ini_get('open_basedir')), $extraDirs); - $dirs = []; + $dirs = array_merge( + explode(\PATH_SEPARATOR, getenv('PATH') ?: getenv('Path')), + $extraDirs + ); + + if ($openBaseDir = \ini_get('open_basedir')) { + $searchPath = array_merge(explode(\PATH_SEPARATOR, $openBaseDir)); foreach ($searchPath as $path) { // Silencing against https://bugs.php.net/69240 if (@is_dir($path)) { @@ -61,11 +65,6 @@ public function find(string $name, ?string $default = null, array $extraDirs = [ } } } - } else { - $dirs = array_merge( - explode(\PATH_SEPARATOR, getenv('PATH') ?: getenv('Path')), - $extraDirs - ); } $suffixes = ['']; @@ -74,7 +73,7 @@ public function find(string $name, ?string $default = null, array $extraDirs = [ $suffixes = array_merge($pathExt ? explode(\PATH_SEPARATOR, $pathExt) : $this->suffixes, $suffixes); } foreach ($suffixes as $suffix) { - foreach ($dirs as $dir) { + foreach (array_unique($dirs) as $dir) { if (@is_file($file = $dir.\DIRECTORY_SEPARATOR.$name.$suffix) && ('\\' === \DIRECTORY_SEPARATOR || @is_executable($file))) { return $file; } From 5bba5f55357a38fb548f5004a5d68fbfbd4c4a5e Mon Sep 17 00:00:00 2001 From: Fritz Michael Gschwantner Date: Wed, 14 Aug 2024 12:02:25 +0100 Subject: [PATCH 2/2] remove superfluous array_merge --- src/Symfony/Component/Process/ExecutableFinder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Process/ExecutableFinder.php b/src/Symfony/Component/Process/ExecutableFinder.php index fd72b21cf41ba..c4b201a40f397 100644 --- a/src/Symfony/Component/Process/ExecutableFinder.php +++ b/src/Symfony/Component/Process/ExecutableFinder.php @@ -54,7 +54,7 @@ public function find(string $name, ?string $default = null, array $extraDirs = [ ); if ($openBaseDir = \ini_get('open_basedir')) { - $searchPath = array_merge(explode(\PATH_SEPARATOR, $openBaseDir)); + $searchPath = explode(\PATH_SEPARATOR, $openBaseDir); foreach ($searchPath as $path) { // Silencing against https://bugs.php.net/69240 if (@is_dir($path)) { pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy