From 1b0dccab42a1686be5a9ed4a891d2ae5d5ec189d Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Tue, 25 Jul 2023 09:16:59 +0300 Subject: [PATCH] mkdir fix --- application/Espo/Core/Utils/File/Manager.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/application/Espo/Core/Utils/File/Manager.php b/application/Espo/Core/Utils/File/Manager.php index 49255fd1aa..15b182ba6a 100644 --- a/application/Espo/Core/Utils/File/Manager.php +++ b/application/Espo/Core/Utils/File/Manager.php @@ -552,18 +552,23 @@ class Manager $permission = (int) base_convert((string) $defaultPermissions['dir'], 8, 10); } - $umask = umask(0); - if (is_dir($path)) { return true; } + $umask = umask(0); + $result = mkdir($path, $permission); if ($umask) { umask($umask); } + if (!$result && is_dir($path)) { + // Dir can be created by a concurrent process. + return true; + } + if (!empty($defaultPermissions['user'])) { $this->getPermissionUtils()->chown($path); } @@ -572,7 +577,7 @@ class Manager $this->getPermissionUtils()->chgrp($path); } - return (bool) $result; + return $result; } /**