From 7803f04b8efafefe83311133916151d157220ffb Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Tue, 29 Jan 2002 22:08:52 +0100 Subject: Fixed handling improper buffer lengths in the EIT parser --- libdtv/libsi/include/libsi.h | 4 ++-- libdtv/libsi/si_parser.c | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) (limited to 'libdtv') 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; -- cgit v1.2.3