aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server/Middleware/UrlDecodeQueryFeature.cs
diff options
context:
space:
mode:
authorClaus Vium <cvium@users.noreply.github.com>2021-06-09 10:23:29 +0200
committerGitHub <noreply@github.com>2021-06-09 10:23:29 +0200
commitd366fd3fd7b9db8ce5f481f9f1093adc1018b04e (patch)
tree0ba34f7139b2589379fca0127e2876799bd7dbae /Jellyfin.Server/Middleware/UrlDecodeQueryFeature.cs
parentb986cb57b7a73236f5a3a1ed22ee8233bd0c75a8 (diff)
parent06401ffa0d8ae98fa42c750847f97c3c291b06ae (diff)
Merge pull request #6165 from Bond-009/tests4
Fix duplicate keys causing an exception
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);