Fixed an overflow of PIDs in a receiver

This commit is contained in:
Klaus Schmidinger 2015-09-16 14:08:42 +02:00
parent 09e64c24f2
commit 5d249c1ae5
3 changed files with 9 additions and 3 deletions

View File

@ -3429,3 +3429,6 @@ Janne P
Stefan Pöschel <basic.master@gmx.de> Stefan Pöschel <basic.master@gmx.de>
for coding the AFFcleaner, parts of which were used to make the recorder skip empty for coding the AFFcleaner, parts of which were used to make the recorder skip empty
adaptation field TS packets adaptation field TS packets
Robert Hannebauer <vdr@hannebauer.org>
for fixing an overflow of PIDs in a receiver

View File

@ -8831,3 +8831,4 @@ Video Disk Recorder Revision History
2015-09-16: Version 2.3.2 2015-09-16: Version 2.3.2
- Fixed a crash when deleting a recording (reported by Oliver Endriss). - Fixed a crash when deleting a recording (reported by Oliver Endriss).
- Fixed an overflow of PIDs in a receiver (thanks to Robert Hannebauer).

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: receiver.c 3.3 2015/01/12 14:04:31 kls Exp $ * $Id: receiver.c 4.1 2015/09/16 11:19:47 kls Exp $
*/ */
#include "receiver.h" #include "receiver.h"
@ -37,8 +37,10 @@ void cReceiver::SetPriority(int Priority)
bool cReceiver::AddPid(int Pid) bool cReceiver::AddPid(int Pid)
{ {
if (Pid) { if (Pid) {
if (numPids < MAXRECEIVEPIDS) if (numPids < MAXRECEIVEPIDS) {
pids[numPids++] = Pid; if (!WantsPid(Pid))
pids[numPids++] = Pid;
}
else { else {
dsyslog("too many PIDs in cReceiver (Pid = %d)", Pid); dsyslog("too many PIDs in cReceiver (Pid = %d)", Pid);
return false; return false;