summaryrefslogtreecommitdiff
path: root/dxr3pesframe.c
diff options
context:
space:
mode:
authorscop <scop>2005-05-01 13:54:21 +0000
committerscop <scop>2005-05-01 13:54:21 +0000
commitdb76939b99be30bb77a14b38ace07a5774c30c96 (patch)
tree5e4831bf184e601690b030ef9848fc5aade75b73 /dxr3pesframe.c
parent12548fcc5955055578a53085601dff3f55d55d5b (diff)
downloadvdr-plugin-dxr3-db76939b99be30bb77a14b38ace07a5774c30c96.tar.gz
vdr-plugin-dxr3-db76939b99be30bb77a14b38ace07a5774c30c96.tar.bz2
Corrupt stream fix from Jon Burgess, http://article.gmane.org/gmane.linux.vdr/21789
Diffstat (limited to 'dxr3pesframe.c')
-rw-r--r--dxr3pesframe.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/dxr3pesframe.c b/dxr3pesframe.c
index cb953a4..746879b 100644
--- a/dxr3pesframe.c
+++ b/dxr3pesframe.c
@@ -44,6 +44,12 @@ bool cDxr3PesFrame::ExtractNextFrame(const uint8_t* pBuf, uint32_t length)
if (length > 9)
{
for (; pos + 9 < length && !IsPesHeader(pesArray.SubArray(pos, 4)); pos++);
+ if (pos + 9 >= length)
+ {
+ // Corrupt stream?
+ m_remainingLength = 0;
+ return m_bValid;
+ }
m_pPesStart = pBuf + pos;
if ((pesArray[pos + 6] & 0xC0) == 0x80