Fix duplicate keys causing an exception

This commit is contained in:
Bond_009
2021-06-08 22:26:59 +02:00
parent b986cb57b7
commit 06401ffa0d
4 changed files with 45 additions and 4 deletions

View File

@@ -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);