summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2002-01-29 22:08:52 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2002-01-29 22:08:52 +0100
commit7803f04b8efafefe83311133916151d157220ffb (patch)
tree37413502f6c0632ef50d6ed0d693f7e696acbab7
parent7b475c6f9673663f4953130f9b3a047253ccad94 (diff)
downloadvdr-0.9.9pre3.tar.gz
vdr-0.9.9pre3.tar.bz2
Fixed handling improper buffer lengths in the EIT parser0.9.9pre3
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY5
-rw-r--r--config.h4
-rw-r--r--libdtv/libsi/include/libsi.h4
-rw-r--r--libdtv/libsi/si_parser.c16
5 files changed, 18 insertions, 12 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 073e9271..1d06173f 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -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
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;