Merge pull request #12440 from MrPetovan/bug/fatal-errors

Catch exceptions in Model\Gserver::cleanURL
This commit is contained in:
Philipp 2022-12-17 02:17:00 +01:00 committed by GitHub
commit 22c1cd3cd1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -314,25 +314,20 @@ class GServer
/** /**
* Remove unwanted content from the given URL * Remove unwanted content from the given URL
* *
* @param string $url * @param string $dirtyUrl
* *
* @return string cleaned URL * @return string cleaned URL
* @throws Exception
*/ */
public static function cleanURL(string $url): string public static function cleanURL(string $dirtyUrl): string
{ {
$url = trim($url, '/'); try {
$url = str_replace('/index.php', '', $url); $url = str_replace('/index.php', '', trim($dirtyUrl, '/'));
return (string)(new Uri($url))->withUserInfo('')->withQuery('')->withFragment('');
$urlparts = parse_url($url); } catch (\Throwable $e) {
if (empty($urlparts)) { Logger::warning('Invalid URL', ['dirtyUrl' => $dirtyUrl, 'url' => $url]);
return ''; return '';
} }
unset($urlparts['user']);
unset($urlparts['pass']);
unset($urlparts['query']);
unset($urlparts['fragment']);
return (string)Uri::fromParts($urlparts);
} }
/** /**