Parcourir la source

Avoid checking for .dockerenv if open_basedir is set, fixes #8585

Jordi Boggiano il y a 5 ans
Parent
commit
c56886ac36
1 fichiers modifiés avec 6 ajouts et 1 suppressions
  1. 6 1
      src/Composer/Console/Application.php

+ 6 - 1
src/Composer/Console/Application.php

@@ -220,7 +220,12 @@ class Application extends BaseApplication
                 $io->writeError(sprintf('<warning>Warning: This development build of composer is over 60 days old. It is recommended to update it by running "%s self-update" to get the latest version.</warning>', $_SERVER['PHP_SELF']));
             }
 
-            if (!Platform::isWindows() && function_exists('exec') && !getenv('COMPOSER_ALLOW_SUPERUSER') && !file_exists('/.dockerenv')) {
+            if (
+                !Platform::isWindows()
+                && function_exists('exec')
+                && !getenv('COMPOSER_ALLOW_SUPERUSER')
+                && (ini_get('open_basedir') || !file_exists('/.dockerenv'))
+            ) {
                 if (function_exists('posix_getuid') && posix_getuid() === 0) {
                     if ($commandName !== 'self-update' && $commandName !== 'selfupdate') {
                         $io->writeError('<warning>Do not run Composer as root/super user! See https://getcomposer.org/root for details</warning>');