Merge pull request #12907 from JPVenson/bugfix/10.10/SourceCountstackoverflow

Fix stackoverflow in MediaSourceCount
This commit is contained in:
Bond-009 2025-03-10 14:34:50 +01:00 committed by GitHub
commit 069b518ab0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -152,16 +152,7 @@ namespace MediaBrowser.Controller.Entities
{
get
{
if (!string.IsNullOrEmpty(PrimaryVersionId))
{
var item = LibraryManager.GetItemById(PrimaryVersionId);
if (item is Video video)
{
return video.MediaSourceCount;
}
}
return LinkedAlternateVersions.Length + LocalAlternateVersions.Length + 1;
return GetMediaSourceCount(new HashSet<Guid>());
}
}
@ -550,5 +541,25 @@ namespace MediaBrowser.Controller.Entities
return list;
}
private int GetMediaSourceCount(HashSet<Guid> callstack)
{
if (!string.IsNullOrEmpty(PrimaryVersionId))
{
var item = LibraryManager.GetItemById(PrimaryVersionId);
if (item is Video video)
{
if (callstack.Contains(video.Id))
{
return video.LinkedAlternateVersions.Length + video.LocalAlternateVersions.Length + 1;
}
callstack.Add(video.Id);
return video.GetMediaSourceCount(callstack);
}
}
return LinkedAlternateVersions.Length + LocalAlternateVersions.Length + 1;
}
}
}