From 5c2c1a47cce0eb9971ef437e415e8c5692ac3d8b Mon Sep 17 00:00:00 2001 From: Joshua Ramon Enslin Date: Sun, 5 Nov 2023 23:37:28 +0100 Subject: [PATCH] Fully ensure all URL components are present for rewriting --- src/MD_STD_IN.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/MD_STD_IN.php b/src/MD_STD_IN.php index 1ced094..22d7efc 100644 --- a/src/MD_STD_IN.php +++ b/src/MD_STD_IN.php @@ -203,7 +203,7 @@ final class MD_STD_IN { } } catch (MDInvalidUrl $e) { - if (($parsed = parse_url($input)) === false || empty($parsed['scheme'])) { + if (($parsed = parse_url($input)) === false || empty($parsed['scheme']) || empty($parsed['host']) || empty($parsed['path'])) { throw new MDInvalidUrl("Invalid input URL"); } $rewritten = $parsed['scheme'] . '://'; @@ -219,6 +219,8 @@ final class MD_STD_IN { } } + if (empty($output)) return ''; + // Check for valid schemes if (MD_STD::startsWithAny($output, ['https://', 'http://', 'ftp://']) === false) { throw new MDInvalidUrl("Invalid input URL");