diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2004-10-24 09:26:23 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2004-10-24 09:26:23 +0200 |
commit | 343df6266eed68ef4d3f683e383e7237c0b75cdd (patch) | |
tree | dd3fd9181cbf691e5b722d76abe4fca43eb1dfe6 | |
parent | d507645323aa4bc49404645c4998bcd02fddc789 (diff) | |
download | vdr-343df6266eed68ef4d3f683e383e7237c0b75cdd.tar.gz vdr-343df6266eed68ef4d3f683e383e7237c0b75cdd.tar.bz2 |
Increased the required free buffer space in the resultBuffer of cRemux
-rw-r--r-- | HISTORY | 6 | ||||
-rw-r--r-- | remux.c | 6 |
2 files changed, 8 insertions, 4 deletions
@@ -3037,7 +3037,7 @@ Video Disk Recorder Revision History checking if the channel has a non-zero number. - Updated 'channels.conf.terr' for Hannover (thanks to Sven Kreiensen). -2004-10-23: Version 1.3.14 +2004-10-24: Version 1.3.14 - Fixed detecting transponder lock in cDvbTuner (based on a patch from Stefan Meyknecht). @@ -3059,3 +3059,7 @@ Video Disk Recorder Revision History - Some minor code cleanups (thanks to Prakash K. Cheemplavam). - Fixed missing cleanup at program exit in case there is a problem with a plugin (thanks to Mattias Grönlund for pointing this out). +- Increased the required free buffer space in the resultBuffer of cRemux to + 2 * IPACKS to avoid a buffer overflow in case a cTS2PES writes one complete + packet and then (within processing the same TS packet) wants to write another + small packet. @@ -8,7 +8,7 @@ * the Linux DVB driver's 'tuxplayer' example and were rewritten to suit * VDR's needs. * - * $Id: remux.c 1.20 2004/10/23 12:06:13 kls Exp $ + * $Id: remux.c 1.21 2004/10/24 09:25:33 kls Exp $ */ #include "remux.h" @@ -491,8 +491,8 @@ int cRemux::Put(const uchar *Data, int Count) break; if (Data[i] != TS_SYNC_BYTE) break; - if (resultBuffer->Free() < IPACKS) - break; + if (resultBuffer->Free() < 2 * IPACKS) + break; // A cTS2PES might write one full packet and also a small rest int pid = GetPid(Data + i + 1); if (Data[i + 3] & 0x10) { // got payload if (pid == vPid) vTS2PES->ts_to_pes(Data + i); |