aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server/Middleware/UrlDecodeQueryFeature.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Jellyfin.Server/Middleware/UrlDecodeQueryFeature.cs')
-rw-r--r--Jellyfin.Server/Middleware/UrlDecodeQueryFeature.cs11
1 files changed, 8 insertions, 3 deletions
diff --git a/Jellyfin.Server/Middleware/UrlDecodeQueryFeature.cs b/Jellyfin.Server/Middleware/UrlDecodeQueryFeature.cs
index f1b47ce33..310a3d31a 100644
--- a/Jellyfin.Server/Middleware/UrlDecodeQueryFeature.cs
+++ b/Jellyfin.Server/Middleware/UrlDecodeQueryFeature.cs
@@ -68,15 +68,20 @@ namespace Jellyfin.Server.Middleware
foreach (var pair in queryString)
{
var i = pair.IndexOf('=');
-
if (i == -1)
{
// encoded is an equals.
- pairs.Add(pair.ToString(), StringValues.Empty);
+ // We use TryAdd so duplicate keys get ignored
+ pairs.TryAdd(pair.ToString(), StringValues.Empty);
continue;
}
- pairs.Add(pair[..i].ToString(), new StringValues(pair[(i + 1)..].ToString()));
+ var k = pair[..i].ToString();
+ var v = pair[(i + 1)..].ToString();
+ if (!pairs.TryAdd(k, new StringValues(v)))
+ {
+ pairs[k] = StringValues.Concat(pairs[k], v);
+ }
}
_store = new QueryCollection(pairs);