diff options
-rw-r--r-- | CONTRIBUTORS | 3 | ||||
-rw-r--r-- | HISTORY | 1 | ||||
-rw-r--r-- | receiver.c | 8 |
3 files changed, 9 insertions, 3 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 4d629256..ad1c3362 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -3429,3 +3429,6 @@ Janne Pänkälä <epankala@gmail.com> Stefan Pöschel <basic.master@gmx.de> for coding the AFFcleaner, parts of which were used to make the recorder skip empty adaptation field TS packets + +Robert Hannebauer <vdr@hannebauer.org> + for fixing an overflow of PIDs in a receiver @@ -8831,3 +8831,4 @@ Video Disk Recorder Revision History 2015-09-16: Version 2.3.2 - Fixed a crash when deleting a recording (reported by Oliver Endriss). +- Fixed an overflow of PIDs in a receiver (thanks to Robert Hannebauer). @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * 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" @@ -37,8 +37,10 @@ void cReceiver::SetPriority(int Priority) bool cReceiver::AddPid(int Pid) { if (Pid) { - if (numPids < MAXRECEIVEPIDS) - pids[numPids++] = Pid; + if (numPids < MAXRECEIVEPIDS) { + if (!WantsPid(Pid)) + pids[numPids++] = Pid; + } else { dsyslog("too many PIDs in cReceiver (Pid = %d)", Pid); return false; |