Fixed handling improper buffer lengths in the EIT parser

This commit is contained in:
Klaus Schmidinger 2002-01-29 22:08:52 +01:00
parent 7b475c6f96
commit 7803f04b8e
5 changed files with 18 additions and 12 deletions

View File

@ -57,6 +57,7 @@ Alberto Carraro <bertocar@tin.it>
Deti Fliegl <deti@fliegl.de>
for implementing the 'CurrentChannel' setup parameter
for fixing setting the OSD size in the 'Confirm' interface call
for fixing handling improper buffer lengths in the EIT parser
Dave Chapman <dave@dchapman.com>
for implementing support for the teletext PID

View File

@ -921,3 +921,8 @@ Video Disk Recorder Revision History
- Status messages are now displayed centered.
- Removed the 'Tools' subdirectory from the VDR archive. All contributed tools
can now be found at ftp://ftp.cadsoft.de/pub/people/kls/vdr/Tools.
2002-01-29: Version 0.99pre3
- Fixed handling improper buffer lengths in the EIT parser (thanks to Deti
Fliegl).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: config.h 1.88 2002/01/19 16:06:53 kls Exp $
* $Id: config.h 1.89 2002/01/29 21:53:32 kls Exp $
*/
#ifndef __CONFIG_H
@ -18,7 +18,7 @@
#include "eit.h"
#include "tools.h"
#define VDRVERSION "0.99pre2"
#define VDRVERSION "0.99pre3"
#define MAXPRIORITY 99
#define MAXLIFETIME 99

View File

@ -946,9 +946,9 @@ struct Pid *siParsePMT (u_char *);
struct LIST *siParseSDT (u_char *);
struct LIST *siParseEIT (u_char *);
time_t siParseTDT (u_char *);
void siParseDescriptors (struct LIST *, u_char *, u_int, u_char);
void siParseDescriptors (struct LIST *, u_char *, int, u_char);
void siParseDescriptor (struct LIST *, u_char *);
char *siGetDescriptorText (u_char *, u_int);
char *siGetDescriptorText (u_char *, int);
u_long crc32 (char *data, int len);
/* si_debug_services.c */

View File

@ -40,7 +40,7 @@ struct LIST *siParsePAT (u_char *Buffer)
pat_t *Pat;
pat_prog_t *PatProgram;
u_char *Ptr;
u_int SectionLength;
int SectionLength;
int TransportStreamID;
int PatVersion;
struct Program *Program;
@ -87,7 +87,7 @@ struct Pid *siParsePMT (u_char *Buffer)
pmt_t *Pmt;
pmt_info_t *PmtInfo;
u_char *Ptr;
u_int SectionLength, ProgramInfoLength,
int SectionLength, ProgramInfoLength,
StreamLength, LoopLength;
int ProgramID;
int PcrID;
@ -150,7 +150,7 @@ struct LIST *siParseSDT (u_char *Buffer)
sdt_t *Sdt;
sdt_descr_t *SdtDescriptor;
u_char *Ptr;
u_int SectionLength, LoopLength;
int SectionLength, LoopLength;
int TransportStreamID;
int SdtVersion;
int OriginalNetworkID;
@ -229,7 +229,7 @@ struct LIST *siParseEIT (u_char *Buffer)
eit_t *Eit;
eit_event_t *EitEvent;
u_char *Ptr;
u_int SectionLength, LoopLength;
int SectionLength, LoopLength;
int ServiceID;
int EitVersion;
int TransportStreamID;
@ -316,7 +316,7 @@ time_t siParseTDT (u_char *Buffer)
{
tdt_t *Tdt;
u_char *Ptr;
u_int SectionLength;
int SectionLength;
int TdtVersion;
time_t CurrentTime;
@ -339,9 +339,9 @@ time_t siParseTDT (u_char *Buffer)
void siParseDescriptors (struct LIST *Descriptors, u_char *Buffer,
u_int Length, u_char TableID)
int Length, u_char TableID)
{
u_int DescriptorLength;
int DescriptorLength;
u_char *Ptr;
DescriptorLength = 0;
@ -838,7 +838,7 @@ void siParseDescriptor (struct LIST *Descriptors, u_char *Buffer)
/*
* ToDo: ETSI conformal text definition
*/
char *siGetDescriptorText (u_char *Buffer, u_int Length)
char *siGetDescriptorText (u_char *Buffer, int Length)
{
char *tmp, *result;
int i;