diff options
Diffstat (limited to 'Jellyfin.Server/Middleware/UrlDecodeQueryFeature.cs')
| -rw-r--r-- | Jellyfin.Server/Middleware/UrlDecodeQueryFeature.cs | 11 |
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); |
