From bc88c96cbe13301ee6e5f6a2d688a4c90338281d Mon Sep 17 00:00:00 2001 From: Cody Robibero Date: Sat, 23 Sep 2023 16:14:03 -0600 Subject: [PATCH] Validate cast receiver id on get/set --- Jellyfin.Server.Implementations/Users/UserManager.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Jellyfin.Server.Implementations/Users/UserManager.cs b/Jellyfin.Server.Implementations/Users/UserManager.cs index 2a38fcecc4..108d2fad4f 100644 --- a/Jellyfin.Server.Implementations/Users/UserManager.cs +++ b/Jellyfin.Server.Implementations/Users/UserManager.cs @@ -328,7 +328,8 @@ namespace Jellyfin.Server.Implementations.Users LatestItemsExcludes = user.GetPreferenceValues(PreferenceKind.LatestItemExcludes), CastReceiverId = string.IsNullOrEmpty(user.CastReceiverId) ? _serverConfigurationManager.Configuration.CastReceiverApplications.FirstOrDefault()?.Id - : user.CastReceiverId + : _serverConfigurationManager.Configuration.CastReceiverApplications.FirstOrDefault(c => string.Equals(c.Id, user.CastReceiverId, StringComparison.Ordinal))?.Id + ?? _serverConfigurationManager.Configuration.CastReceiverApplications.FirstOrDefault()?.Id }, Policy = new UserPolicy { @@ -616,7 +617,10 @@ namespace Jellyfin.Server.Implementations.Users user.EnableNextEpisodeAutoPlay = config.EnableNextEpisodeAutoPlay; user.RememberSubtitleSelections = config.RememberSubtitleSelections; user.SubtitleLanguagePreference = config.SubtitleLanguagePreference; - if (!string.IsNullOrEmpty(config.CastReceiverId)) + + // Only set cast receiver id if it is passed in and it exists in the server config. + if (!string.IsNullOrEmpty(config.CastReceiverId) + && _serverConfigurationManager.Configuration.CastReceiverApplications.Any(c => string.Equals(c.Id, config.CastReceiverId, StringComparison.Ordinal))) { user.CastReceiverId = config.CastReceiverId; }