1
0
Fork 0

Fix Filesystem::isLocalPath including windows checks on linux

pull/12001/head
Jordi Boggiano 2024-05-29 13:42:12 +02:00
parent f38df849c2
commit 3c37a67c0c
No known key found for this signature in database
GPG Key ID: 7BBD42C429EC80BC
1 changed files with 7 additions and 1 deletions

View File

@ -638,9 +638,15 @@ class Filesystem
*/ */
public static function isLocalPath(string $path) public static function isLocalPath(string $path)
{ {
// on windows, \\foo indicates network paths so we exclude those from local paths, however it is unsafe
// on linux as file:////foo (which would be a network path \\foo on windows) will resolve to /foo which could be a local path
if (Platform::isWindows()) {
return Preg::isMatch('{^(file://(?!//)|/(?!/)|/?[a-z]:[\\\\/]|\.\.[\\\\/]|[a-z0-9_.-]+[\\\\/])}i', $path); return Preg::isMatch('{^(file://(?!//)|/(?!/)|/?[a-z]:[\\\\/]|\.\.[\\\\/]|[a-z0-9_.-]+[\\\\/])}i', $path);
} }
return Preg::isMatch('{^(file://|/|/?[a-z]:[\\\\/]|\.\.[\\\\/]|[a-z0-9_.-]+[\\\\/])}i', $path);
}
/** /**
* @return string * @return string
*/ */