Merge pull request #6860 from cvium/fix_xml_endless_loops

This commit is contained in:
Cody Robibero 2021-11-17 08:39:49 -07:00 committed by GitHub
commit fa366f0099
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 6 deletions

View file

@ -319,6 +319,12 @@ namespace MediaBrowser.Providers.Music
{
case "name-credit":
{
if (reader.IsEmptyElement)
{
reader.Read();
break;
}
using var subReader = reader.ReadSubtree();
return ParseArtistNameCredit(subReader);
}
@ -355,6 +361,12 @@ namespace MediaBrowser.Providers.Music
{
case "artist":
{
if (reader.IsEmptyElement)
{
reader.Read();
break;
}
var id = reader.GetAttribute("id");
using var subReader = reader.ReadSubtree();
return ParseArtistArtistCredit(subReader, id);
@ -457,8 +469,8 @@ namespace MediaBrowser.Providers.Music
};
using var reader = XmlReader.Create(oReader, settings);
reader.MoveToContent();
reader.Read();
await reader.MoveToContentAsync().ConfigureAwait(false);
await reader.ReadAsync().ConfigureAwait(false);
// Loop through each element
while (!reader.EOF && reader.ReadState == ReadState.Interactive)
@ -471,7 +483,7 @@ namespace MediaBrowser.Providers.Music
{
if (reader.IsEmptyElement)
{
reader.Read();
await reader.ReadAsync().ConfigureAwait(false);
continue;
}
@ -481,14 +493,14 @@ namespace MediaBrowser.Providers.Music
default:
{
reader.Skip();
await reader.SkipAsync().ConfigureAwait(false);
break;
}
}
}
else
{
reader.Read();
await reader.ReadAsync().ConfigureAwait(false);
}
}
@ -755,6 +767,12 @@ namespace MediaBrowser.Providers.Music
case "artist-credit":
{
if (reader.IsEmptyElement)
{
reader.Read();
break;
}
using var subReader = reader.ReadSubtree();
var artist = ParseArtistCredit(subReader);

View file

@ -784,7 +784,13 @@ namespace MediaBrowser.XbmcMetadata.Parsers
case "fanart":
{
var subtree = reader.ReadSubtree();
if (reader.IsEmptyElement)
{
reader.Read();
break;
}
using var subtree = reader.ReadSubtree();
if (!subtree.ReadToDescendant("thumb"))
{
break;