From ce24902dc05409627bcb2caf8c9938948719cb5c Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Sat, 10 Oct 2020 13:43:08 -0700 Subject: [PATCH] Fixed: Parsing of URLs with double slashes in the path (cherry picked from commit 0c7743e786749b333333d282412ff76fc10aba65) --- src/NzbDrone.Common.Test/Http/HttpUriFixture.cs | 2 ++ src/NzbDrone.Common/Http/HttpUri.cs | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/NzbDrone.Common.Test/Http/HttpUriFixture.cs b/src/NzbDrone.Common.Test/Http/HttpUriFixture.cs index 59d3c90c8..f47c59881 100644 --- a/src/NzbDrone.Common.Test/Http/HttpUriFixture.cs +++ b/src/NzbDrone.Common.Test/Http/HttpUriFixture.cs @@ -8,6 +8,8 @@ namespace NzbDrone.Common.Test.Http public class HttpUriFixture : TestBase { [TestCase("abc://my_host.com:8080/root/api/")] + [TestCase("abc://my_host.com:8080//root/api/")] + [TestCase("abc://my_host.com:8080/root//api/")] public void should_parse(string uri) { var newUri = new HttpUri(uri); diff --git a/src/NzbDrone.Common/Http/HttpUri.cs b/src/NzbDrone.Common/Http/HttpUri.cs index 9dfd384ad..f90e564f5 100644 --- a/src/NzbDrone.Common/Http/HttpUri.cs +++ b/src/NzbDrone.Common/Http/HttpUri.cs @@ -8,7 +8,7 @@ namespace NzbDrone.Common.Http { public class HttpUri : IEquatable { - private static readonly Regex RegexUri = new Regex(@"^(?:(?[a-z]+):)?(?://(?[-_A-Z0-9.]+)(?::(?[0-9]{1,5}))?)?(?(?:(?:(?<=^)|/)[^/?#\r\n]+)+/?|/)?(?:\?(?[^#\r\n]*))?(?:\#(?.*))?$", RegexOptions.Compiled | RegexOptions.IgnoreCase); + private static readonly Regex RegexUri = new Regex(@"^(?:(?[a-z]+):)?(?://(?[-_A-Z0-9.]+)(?::(?[0-9]{1,5}))?)?(?(?:(?:(?<=^)|/+)[^/?#\r\n]+)+/*|/+)?(?:\?(?[^#\r\n]*))?(?:\#(?.*))?$", RegexOptions.Compiled | RegexOptions.IgnoreCase); private readonly string _uri; public string FullUri => _uri;