From 57f8bca70bfd6cb4b69369d19a5386d914fa0510 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Mon, 11 Apr 2016 10:07:37 +0200 Subject: [PATCH] DVR: add extra channel access checks to channel_set functions --- src/channels.c | 2 +- src/dvr/dvr_autorec.c | 2 ++ src/dvr/dvr_db.c | 2 ++ src/dvr/dvr_timerec.c | 2 ++ 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/channels.c b/src/channels.c index f9bd211ef..972464b4c 100644 --- a/src/channels.c +++ b/src/channels.c @@ -596,7 +596,7 @@ channel_access(channel_t *ch, access_t *a, int disabled) { char ubuf[UUID_HEX_SIZE]; - if (!ch) + if (!ch || !a) return 0; if (!disabled && !ch->ch_enabled) diff --git a/src/dvr/dvr_autorec.c b/src/dvr/dvr_autorec.c index fdc28bfaf..f0edff51f 100644 --- a/src/dvr/dvr_autorec.c +++ b/src/dvr/dvr_autorec.c @@ -483,6 +483,8 @@ dvr_autorec_entry_class_channel_set(void *o, const void *v) return 1; } } else if (dae->dae_channel != ch) { + if (!channel_access(ch, dae->dae_id.in_access, 1)) + return 0; if (dae->dae_channel) LIST_REMOVE(dae, dae_channel_link); dae->dae_channel = ch; diff --git a/src/dvr/dvr_db.c b/src/dvr/dvr_db.c index 9f34e93dd..e4d7a15ef 100644 --- a/src/dvr/dvr_db.c +++ b/src/dvr/dvr_db.c @@ -2271,6 +2271,8 @@ dvr_entry_class_channel_set(void *o, const void *v) return 1; } } else if (de->de_channel != ch) { + if (!channel_access(ch, de->de_id.in_access, 1)) + return 0; if (de->de_channel) LIST_REMOVE(de, de_channel_link); free(de->de_channel_name); diff --git a/src/dvr/dvr_timerec.c b/src/dvr/dvr_timerec.c index f7fa33ea4..c91aa89d4 100644 --- a/src/dvr/dvr_timerec.c +++ b/src/dvr/dvr_timerec.c @@ -327,6 +327,8 @@ dvr_timerec_entry_class_channel_set(void *o, const void *v) return 1; } } else if (dte->dte_channel != ch) { + if (!channel_access(ch, dte->dte_id.in_access, 1)) + return 0; if (dte->dte_channel) LIST_REMOVE(dte, dte_channel_link); dte->dte_channel = ch; -- 2.47.3