From: Jaroslav Kysela Date: Fri, 26 May 2017 18:38:26 +0000 (+0200) Subject: descrambler: fix the NULL dereference (wrong tk initialization) X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=50c4dae2b04450ff6c63f7cb13487048d3d454eb;p=thirdparty%2Ftvheadend.git descrambler: fix the NULL dereference (wrong tk initialization) --- 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",