diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 073e9271..1d06173f 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -57,6 +57,7 @@ Alberto Carraro Deti Fliegl 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 for implementing support for the teletext PID diff --git a/HISTORY b/HISTORY index 7a57c984..819a9f47 100644 --- a/HISTORY +++ b/HISTORY @@ -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). diff --git a/config.h b/config.h index 960e5146..189390a3 100644 --- a/config.h +++ b/config.h @@ -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 diff --git a/libdtv/libsi/include/libsi.h b/libdtv/libsi/include/libsi.h index dda2b1e4..29079b10 100644 --- a/libdtv/libsi/include/libsi.h +++ b/libdtv/libsi/include/libsi.h @@ -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 */ diff --git a/libdtv/libsi/si_parser.c b/libdtv/libsi/si_parser.c index 76d72c8f..e6ca5252 100644 --- a/libdtv/libsi/si_parser.c +++ b/libdtv/libsi/si_parser.c @@ -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;