Actions
Bug #5452
closedWrong mpegts packet length used for descrambler_data_key_check
Status:
Fixed
Priority:
Normal
Assignee:
-
Category:
Descrambling
Target version:
-
Start date:
2018-12-23
Due date:
% Done:
0%
Estimated time:
Found in version:
4.3
Affected Versions:
Description
While trying to track down some intermittent descrambling problems, I noticed this. Most likely it was rarely a problem, but should be fixed.
mpegts packet size is 188, not 128.
diff --git a/src/descrambler/descrambler.c b/src/descrambler/descrambler.c
index 63b70b205..283fb9015 100644
--- a/src/descrambler/descrambler.c
+++ b/src/descrambler/descrambler.c
@@ -194,11 +194,11 @@ descrambler_data_key_check(th_descrambler_runtime_t *dr, uint8_t key, int len)
dd = TAILQ_NEXT(dd, dd_link);
if (dd == NULL) break;
l = dd->dd_sbuf.sb_ptr;
- for (off = 0; off < l && len > 0; off += 128, l -= 128) {
+ for (off = 0; off < l && len > 0; off += 188, l -= 188) {
ki = dd->dd_sbuf.sb_data[off + 3];
if (ki == 0) continue;
if ((ki & 0xc0) != key) return -1;
- len -= 128;
+ len -= 188;
}
dd = TAILQ_NEXT(dd, dd_link);
}
Pull request here: [[https://github.com/tvheadend/tvheadend/pull/1241]]
Actions