Issue #3036494 by Berdir, alexpott, rgpublic, cilefen, kerasai, regilero: Race condition in ImageStyle::createDerivative()
parent
f6bde5471f
commit
f9fcde32ab
|
@ -520,12 +520,22 @@ class FileSystem implements FileSystemInterface {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!is_dir($directory)) {
|
if (!is_dir($directory)) {
|
||||||
|
if (!($options & static::CREATE_DIRECTORY)) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
// Let mkdir() recursively create directories and use the default
|
// Let mkdir() recursively create directories and use the default
|
||||||
// directory permissions.
|
// directory permissions.
|
||||||
if ($options & static::CREATE_DIRECTORY) {
|
$success = @$this->mkdir($directory, NULL, TRUE);
|
||||||
return @$this->mkdir($directory, NULL, TRUE);
|
if ($success) {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
// If the operation failed, check again if the directory was created
|
||||||
|
// by another process/server, only report a failure if not. In this case
|
||||||
|
// we still need to ensure the directory is writable.
|
||||||
|
if (!is_dir($directory)) {
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
return FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$writable = is_writable($directory);
|
$writable = is_writable($directory);
|
||||||
|
|
Loading…
Reference in New Issue