From 50c4dae2b04450ff6c63f7cb13487048d3d454eb Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Fri, 26 May 2017 20:38:26 +0200 Subject: [PATCH] descrambler: fix the NULL dereference (wrong tk initialization) --- src/descrambler/descrambler.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/descrambler/descrambler.c b/src/descrambler/descrambler.c index 6a8619dbe..ad96714b7 100644 --- a/src/descrambler/descrambler.c +++ b/src/descrambler/descrambler.c @@ -848,11 +848,11 @@ descrambler_descramble ( service_t *t, len2 = sb->sb_ptr; for (; len2 > 0; tsb2 += len3, len2 -= len3) { ki = tsb2[3]; + if (dr->dr_key_multipid) { + tk = key_find_struct(dr, tk, tsb2, t); + if (tk == NULL) goto next; + } if ((ki & 0x80) != 0x00) { - if (dr->dr_key_multipid) { - tk = key_find_struct(dr, tk, tsb2, t); - if (tk == NULL) goto next; - } if (key_valid(tk, ki) == 0) goto next; if (key_changed(dr, tk, ki, dd->dd_timestamp)) { @@ -881,11 +881,11 @@ descrambler_descramble ( service_t *t, /* check for key change */ ki = tsb[3]; + if (dr->dr_key_multipid) { + tk = key_find_struct(dr, tk, tsb, t); + if (tk == NULL) goto next; + } if ((ki & 0x80) != 0x00) { - if (dr->dr_key_multipid) { - tk = key_find_struct(dr, tk, tsb, t); - if (tk == NULL) goto next; - } if (key_valid(tk, ki) == 0) { if (!key_started(dr, ki) && tvhlog_limit(&dr->dr_loglimit_key, 10)) tvhwarn(LS_DESCRAMBLER, "%s %s stream key[%d] is not valid", -- 2.47.3