Now checking Setup.InitialChannel for NULL before using it

This commit is contained in:
Klaus Schmidinger 2011-07-31 13:48:49 +02:00
parent 404124eca4
commit 4278458e69
3 changed files with 11 additions and 6 deletions

View File

@ -2223,6 +2223,7 @@ Christoph Haubrich <christoph1.haubrich@arcor.de>
for suggesting to add a note to cTsToPes about all TS packets having to belong to
the same PID
for adding HD stream content identifiers to vdr.5
for reporting that Setup.InitialChannel was dereferenced without checking for NULL
Pekka Mauno <pekka.mauno@iki.fi>
for fixing cSchedule::GetFollowingEvent() in case there is currently no present

View File

@ -6655,3 +6655,5 @@ Video Disk Recorder Revision History
- Added some missing 'const' to tChannelID (reported by Sundararaj Reel).
- The isnumber() function now checks the given pointer for NULL (thanks to Holger
Dengler).
- Now checking Setup.InitialChannel for NULL before using it (reported by
Christoph Haubrich).

14
vdr.c
View File

@ -22,7 +22,7 @@
*
* The project's page is at http://www.tvdr.de
*
* $Id: vdr.c 2.21 2011/06/13 14:40:12 kls Exp $
* $Id: vdr.c 2.22 2011/07/31 13:42:53 kls Exp $
*/
#include <getopt.h>
@ -704,12 +704,14 @@ int main(int argc, char *argv[])
if (!cDevice::WaitForAllDevicesReady(DEVICEREADYTIMEOUT))
dsyslog("not all devices ready after %d seconds", DEVICEREADYTIMEOUT);
if (isnumber(Setup.InitialChannel)) { // for compatibility with old setup.conf files
if (cChannel *Channel = Channels.GetByNumber(atoi(Setup.InitialChannel)))
Setup.InitialChannel = Channel->GetChannelID().ToString();
if (*Setup.InitialChannel) {
if (isnumber(Setup.InitialChannel)) { // for compatibility with old setup.conf files
if (cChannel *Channel = Channels.GetByNumber(atoi(Setup.InitialChannel)))
Setup.InitialChannel = Channel->GetChannelID().ToString();
}
if (cChannel *Channel = Channels.GetByChannelID(tChannelID::FromString(Setup.InitialChannel)))
Setup.CurrentChannel = Channel->Number();
}
if (cChannel *Channel = Channels.GetByChannelID(tChannelID::FromString(Setup.InitialChannel)))
Setup.CurrentChannel = Channel->Number();
if (Setup.InitialVolume >= 0)
Setup.CurrentVolume = Setup.InitialVolume;
Channels.SwitchTo(Setup.CurrentChannel);