Fixed a buffer overflow in case a station defines all 32 audio PIDs

This commit is contained in:
Klaus Schmidinger 2005-01-30 12:11:56 +01:00
parent ac60bd7141
commit 250e79afbe
3 changed files with 8 additions and 5 deletions

View File

@ -795,6 +795,7 @@ Benjamin Harling <benjamin.harling@web.de>
Christian Jacobsen <christian.jacobsen@stageholding.de> Christian Jacobsen <christian.jacobsen@stageholding.de>
for making the LIRC interface skip keys that come in too fast for making the LIRC interface skip keys that come in too fast
for reporting a problem in handling the '-E' options in version 1.3.18 for reporting a problem in handling the '-E' options in version 1.3.18
for reporting a problem in case a station defines all 32 audio PIDs
Andreas Mair <Andreas.Mair@linogate.com> Andreas Mair <Andreas.Mair@linogate.com>
for reporting a short display of the main menu if a plugin displays its own OSD and for reporting a short display of the main menu if a plugin displays its own OSD and

View File

@ -3341,3 +3341,5 @@ Video Disk Recorder Revision History
- Now setting primaryDevice = NULL before deleting the devices in cDevice::Shutdown() - Now setting primaryDevice = NULL before deleting the devices in cDevice::Shutdown()
to avoid problems in case other threads access it (thanks to Wolfgang Rohdewald for to avoid problems in case other threads access it (thanks to Wolfgang Rohdewald for
pointing this out). pointing this out).
- Fixed a buffer overflow in case a station defines all 32 audio PIDs (thanks to
Christian Jacobsen for reporting this one).

10
pat.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: pat.c 1.11 2005/01/16 13:54:34 kls Exp $ * $Id: pat.c 1.12 2005/01/25 21:02:11 kls Exp $
*/ */
#include "pat.h" #include "pat.h"
@ -324,10 +324,10 @@ void cPatFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
SI::PMT::Stream stream; SI::PMT::Stream stream;
int Vpid = 0; int Vpid = 0;
int Ppid = pmt.getPCRPid(); int Ppid = pmt.getPCRPid();
int Apids[MAXAPIDS] = { 0 }; int Apids[MAXAPIDS + 1] = { 0 };
int Dpids[MAXDPIDS] = { 0 }; int Dpids[MAXDPIDS + 1] = { 0 };
char ALangs[MAXAPIDS][4] = { "" }; char ALangs[MAXAPIDS + 1][4] = { "" };
char DLangs[MAXDPIDS][4] = { "" }; char DLangs[MAXDPIDS + 1][4] = { "" };
int Tpid = 0; int Tpid = 0;
int NumApids = 0; int NumApids = 0;
int NumDpids = 0; int NumDpids = 0;