Fix issue with parsing URLs.

This commit is contained in:
James Cole
2025-11-01 20:00:45 +01:00
parent 8ff40e22e0
commit e2b3e8492d

View File

@@ -39,6 +39,7 @@ use Illuminate\Support\Facades\Log;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Psr\Container\ContainerExceptionInterface; use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface; use Psr\Container\NotFoundExceptionInterface;
use Safe\Exceptions\UrlException;
use ValueError; use ValueError;
use function Safe\parse_url; use function Safe\parse_url;
@@ -671,8 +672,18 @@ class Steam
{ {
// Log::debug(sprintf('getSafeUrl(%s, %s)', $unknownUrl, $safeUrl)); // Log::debug(sprintf('getSafeUrl(%s, %s)', $unknownUrl, $safeUrl));
$returnUrl = $safeUrl; $returnUrl = $safeUrl;
$unknownHost = parse_url($unknownUrl, PHP_URL_HOST); try {
$safeHost = parse_url($safeUrl, PHP_URL_HOST); $unknownHost = parse_url($unknownUrl, PHP_URL_HOST);
} catch (UrlException $e) {
Log::error(sprintf('Could not parse "%s": %s', $unknownUrl, $e->getMessage()));
return $returnUrl;
}
try {
$safeHost = parse_url($safeUrl, PHP_URL_HOST);
} catch (UrlException $e) {
Log::error(sprintf('Could not parse "%s": %s', $unknownUrl, $e->getMessage()));
return $returnUrl;
}
if (null !== $unknownHost && $unknownHost === $safeHost) { if (null !== $unknownHost && $unknownHost === $safeHost) {
$returnUrl = $unknownUrl; $returnUrl = $unknownUrl;