summaryrefslogtreecommitdiff
path: root/eitscan.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2004-01-10 16:52:01 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2004-01-10 16:52:01 +0100
commit43ca916c20a72c9b47a15c460cced63b5c19c286 (patch)
treea3bdc3d251f8f3e2c3dd301cab45f26423ad4bdc /eitscan.c
parent0a62be0274a0c536b2d32e3d24e321efb385b26c (diff)
downloadvdr-43ca916c20a72c9b47a15c460cced63b5c19c286.tar.gz
vdr-43ca916c20a72c9b47a15c460cced63b5c19c286.tar.bz2
Fixed a possible NULL pointer access in cEITScanner::Process()
Diffstat (limited to 'eitscan.c')
-rw-r--r--eitscan.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/eitscan.c b/eitscan.c
index 755bddf1..4273f773 100644
--- a/eitscan.c
+++ b/eitscan.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: eitscan.c 1.16 2004/01/05 09:51:25 kls Exp $
+ * $Id: eitscan.c 1.17 2004/01/10 16:50:51 kls Exp $
*/
#include "eitscan.h"
@@ -116,16 +116,18 @@ void cEITScanner::Process(void)
if (Device != cDevice::PrimaryDevice() || (cDevice::NumDevices() == 1 && Setup.EPGScanTimeout && now - lastActivity > Setup.EPGScanTimeout * 3600)) {
if (!(Device->Receiving(true) || Device->Replaying())) {
cChannel *Channel = ScanData->GetChannel();
- //XXX if (Device->ProvidesTransponder(Channel)) {
- if ((!Channel->Ca() || Channel->Ca() == Device->DeviceNumber() + 1 || Channel->Ca() >= 0x0100) && Device->ProvidesTransponder(Channel)) { //XXX temporary for the 'sky' plugin
- if (Device == cDevice::PrimaryDevice() && !currentChannel)
- currentChannel = Device->CurrentChannel();
- currentDevice = Device;//XXX see also dvbdevice.c!!!
- Device->SwitchChannel(Channel, false);
- currentDevice = NULL;
- scanList->Del(ScanData);
- ScanData = NULL;
- AnyDeviceSwitched = true;
+ if (Channel) {
+ //XXX if (Device->ProvidesTransponder(Channel)) {
+ if ((!Channel->Ca() || Channel->Ca() == Device->DeviceNumber() + 1 || Channel->Ca() >= 0x0100) && Device->ProvidesTransponder(Channel)) { //XXX temporary for the 'sky' plugin
+ if (Device == cDevice::PrimaryDevice() && !currentChannel)
+ currentChannel = Device->CurrentChannel();
+ currentDevice = Device;//XXX see also dvbdevice.c!!!
+ Device->SwitchChannel(Channel, false);
+ currentDevice = NULL;
+ scanList->Del(ScanData);
+ ScanData = NULL;
+ AnyDeviceSwitched = true;
+ }
}
}
}