[libdvbpsi-devel] [Git][videolan/libdvbpsi][branch/1.3.0-bugfix] 2 commits: descriptor: 0x41: correct max service count

Jean-Paul Saman gitlab at videolan.org
Fri Dec 8 14:17:21 CET 2017


Jean-Paul Saman pushed to branch branch/1.3.0-bugfix at VideoLAN / libdvbpsi


Commits:
21db603c by Jean-Paul Saman at 2017-12-08T13:15:56+01:00
descriptor: 0x41: correct max service count

- - - - -
f5578204 by Jean-Paul Saman at 2017-12-08T13:18:59+01:00
NEWS: update

- - - - -


3 changed files:

- NEWS
- src/descriptors/dr_41.c
- src/descriptors/dr_41.h


Changes:

=====================================
NEWS
=====================================
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,7 @@ Changes between 1.3.1 and 1.3.2:
  * Fix bug in dvbpsi_decoder_psi_section_add() set i_last_section_number
  * Fix bug in descriptor 0x8a that prevented it from being parsed properly
  * Fix bug in descriptor 0x56 generation with multiple teletext page entries
+ * Fix bug in descriptor 0x41 correct maximum service count
 
 Changes between 1.3.0 and 1.3.1:
 --------------------------------


=====================================
src/descriptors/dr_41.c
=====================================
--- a/src/descriptors/dr_41.c
+++ b/src/descriptors/dr_41.c
@@ -39,6 +39,8 @@
 
 #include "dr_41.h"
 
+#define DVBPSI_SLS_DR_MAX (84)
+
 /*****************************************************************************
  * dvbpsi_DecodeServiceListDr
  *****************************************************************************/
@@ -59,7 +61,7 @@ dvbpsi_service_list_dr_t* dvbpsi_DecodeServiceListDr(
     unsigned int service_count = p_descriptor->i_length / 3;
     if ((p_descriptor->i_length < 1) ||
         (p_descriptor->i_length % 3 != 0) ||
-        (service_count>63))
+        (service_count > DVBPSI_SLS_DR_MAX - 1))
       return NULL;
 
     /* Allocate memory */
@@ -91,7 +93,7 @@ dvbpsi_descriptor_t * dvbpsi_GenServiceListDr(
                                         bool b_duplicate)
 {
     /* Check the length */
-    if (p_decoded->i_service_count > 63)
+    if (p_decoded->i_service_count > DVBPSI_SLS_DR_MAX - 1)
         return NULL;
 
     /* Create the descriptor */


=====================================
src/descriptors/dr_41.h
=====================================
--- a/src/descriptors/dr_41.h
+++ b/src/descriptors/dr_41.h
@@ -59,7 +59,7 @@ typedef struct dvbpsi_service_list_dr_s
   struct {
       uint16_t     i_service_id;            /*!< service id */
       uint8_t      i_service_type;          /*!< service type */
-  } i_service[64];                          /*!< array of services */
+  } i_service[84];                          /*!< array of services */
 
 } dvbpsi_service_list_dr_t;
 



View it on GitLab: https://code.videolan.org/videolan/libdvbpsi/compare/2570724002c52dc8b15fccafe7fbcb54c29b04b3...f55782042edefda0e3c1038b85a070864c0185ba

---
View it on GitLab: https://code.videolan.org/videolan/libdvbpsi/compare/2570724002c52dc8b15fccafe7fbcb54c29b04b3...f55782042edefda0e3c1038b85a070864c0185ba
You're receiving this email because of your account on code.videolan.org.


More information about the libdvbpsi-devel mailing list