aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/dvb.cpp
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2008-11-18 22:20:15 +0100
committerFelix Domke <tmbinc@elitedvb.net>2008-11-18 22:20:15 +0100
commit6034a35be47b6e1e4f0599547fd4228e7ff0b4fd (patch)
tree7a5aaf90be84dd3af00ef7ac69d6fb396d87686a /lib/dvb/dvb.cpp
parentd924772eeced2429c007e51ce6dcb50dadec2836 (diff)
downloadenigma2-6034a35be47b6e1e4f0599547fd4228e7ff0b4fd.tar.gz
enigma2-6034a35be47b6e1e4f0599547fd4228e7ff0b4fd.zip
Don't search past buffer in TS I-frame cutter.
closes #66.
Diffstat (limited to 'lib/dvb/dvb.cpp')
-rw-r--r--lib/dvb/dvb.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp
index e04caa00..66ec1d2d 100644
--- a/lib/dvb/dvb.cpp
+++ b/lib/dvb/dvb.cpp
@@ -982,7 +982,7 @@ int eDVBChannelFilePush::filterRecordData(const unsigned char *_data, int len, s
// eDebug("filterRecordData, size=%d (mod 188=%d), first byte is %02x", len, len %188, data[0]);
unsigned char *d = data;
- while ((d = (unsigned char*)memmem(d, data + len - d, "\x00\x00\x01", 3)))
+ while ((d + 3 < data + len) && (d = (unsigned char*)memmem(d, data + len - d, "\x00\x00\x01", 3)))
{
int offset = d - data;
int ts_offset = offset - offset % 188; /* offset to the start of TS packet */