Catch exceptions in Model\Gserver::cleanURL

- Address https://github.com/friendica/friendica/issues/11992#issuecomment-1354393419
This commit is contained in:
Hypolite Petovan 2022-12-16 10:15:43 -05:00
parent f37750d679
commit c60464a4be

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);
} }
/** /**