2
0
Bond_009 3 жил өмнө
parent
commit
4643fd5dcb

+ 7 - 3
Jellyfin.Server/Middleware/UrlDecodeQueryFeature.cs

@@ -52,10 +52,14 @@ namespace Jellyfin.Server.Middleware
                     return;
                 }
 
-                var pairs = new Dictionary<string, StringValues>();
-                var queryString = HttpUtility.UrlDecode(key).SpanSplit('&');
+                if (!key.Contains('='))
+                {
+                    _store = value;
+                    return;
+                }
 
-                foreach (var pair in queryString)
+                var pairs = new Dictionary<string, StringValues>();
+                foreach (var pair in key.SpanSplit('&'))
                 {
                     var i = pair.IndexOf('=');
                     if (i == -1)

+ 1 - 1
MediaBrowser.MediaEncoding/Subtitles/SubtitleEditParser.cs

@@ -38,7 +38,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles
             subRip.LoadSubtitle(subtitle, lines, "untitled");
             if (subRip.ErrorCount > 0)
             {
-                _logger.LogError("{ErrorCount} errors encountered while parsing subtitle.", subRip.ErrorCount);
+                _logger.LogError("{ErrorCount} errors encountered while parsing subtitle", subRip.ErrorCount);
             }
 
             var trackInfo = new SubtitleTrackInfo();

+ 1 - 0
tests/Jellyfin.Server.Integration.Tests/EncodedQueryStringTest.cs

@@ -21,6 +21,7 @@ namespace Jellyfin.Server.Integration.Tests
         [InlineData("a=1", "a=1")] // won't be processed as it has a value
         [InlineData("a%3D1%26b%3D2%26c%3D3", "a=1&b=2&c=3")] // will be processed.
         [InlineData("a=b&a=c", "a=b")]
+        [InlineData("a%3D1", "a=1")]
         [InlineData("a%3Db%26a%3Dc", "a=b")]
         public async Task Ensure_Decoding_Of_Urls_Is_Working(string sourceUrl, string unencodedUrl)
         {

+ 0 - 3
tests/Jellyfin.Server.Tests/UrlDecodeQueryFeatureTests.cs

@@ -12,9 +12,6 @@ namespace Jellyfin.Server.Tests
     {
         [Theory]
         [InlineData("e0a72cb2a2c7", "e0a72cb2a2c7")] // isn't encoded
-        [InlineData("random+test", "random test")] // encoded
-        [InlineData("random%20test", "random test")] // encoded
-        [InlineData("++", "  ")] // encoded
         public static void EmptyValueTest(string query, string key)
         {
             var dict = new Dictionary<string, StringValues>