Fixed a possible hangup when reading a broken epg.data file

This commit is contained in:
Klaus Schmidinger 2002-04-06 14:02:41 +02:00
parent d00b5d8828
commit 367b3f8c7d
3 changed files with 8 additions and 5 deletions

View File

@ -88,6 +88,7 @@ Benjamin Reichardt <reichard@math.uni-goettingen.de>
Henning Holtschneider <hh@holtschneider.com>
for patching 'runvdr' to check whether the driver is already loaded
for reporting a bug in parsing group separators in channels.conf
for pointing out a possible hangup when reading a broken epg.data file
Paulo Lopes <pmml@netvita.pt>
for translating OSD texts to the Portugese language

View File

@ -1184,3 +1184,5 @@ Video Disk Recorder Revision History
(thanks to Thilo Wunderlich for reporting this one).
- Now the EPG scan skips channels that have their 'Ca' parameter explicitly set
to an other DVB card (suggested by Sergei Haller).
- Fixed a possible hangup when reading a broken epg.data file (thanks to Henning
Holtschneider for pointing this one out).

10
eit.c
View File

@ -16,7 +16,7 @@
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* $Id: eit.c 1.43 2002/04/06 11:42:47 kls Exp $
* $Id: eit.c 1.44 2002/04/06 13:58:59 kls Exp $
***************************************************************************/
#include "eit.h"
@ -390,12 +390,12 @@ bool cEventInfo::Read(FILE *f, cSchedule *Schedule)
case 'e': pEvent = NULL;
break;
case 'c': // to keep things simple we react on 'c' here
return false;
return true;
default: esyslog(LOG_ERR, "ERROR: unexpected tag while reading EPG data: %s", s);
return false;
}
}
return true;
esyslog(LOG_ERR, "ERROR: unexpected end of file while reading EPG data");
}
return false;
}
@ -754,8 +754,8 @@ bool cSchedule::Read(FILE *f, cSchedules *Schedules)
if (1 == sscanf(s + 1, "%u", &uServiceID)) {
cSchedule *p = (cSchedule *)Schedules->SetCurrentServiceID(uServiceID);
if (p) {
while (cEventInfo::Read(f, p))
; // loop stops after having read the closing 'c'
if (!cEventInfo::Read(f, p))
return false;
}
}
}