[libdvbpsi-devel] Fix decode and generation of linkage descriptor with mobile handover

Daniel Kamil Kozar git at videolan.org
Mon Aug 24 12:54:42 CEST 2015


libdvbpsi | branch: master | Daniel Kamil Kozar <dkk089 at gmail.com> | Sat Jul 18 19:59:57 2015 +0200| [9e9cc85fbfc80ed74b80434073d617f82ad95933] | committer: Jean-Paul Saman

Fix decode and generation of linkage descriptor with mobile handover

Linkage descriptor's generation and decoding routines improperly calculated the
beginning of the private data region in cases where linkage_type = 8,
handover_info = 0, and origin_type = 1.

(cherry picked from commit 979733f1b500a24d43165ed442d9167991a42452)
Signed-off-by: Jean-Paul Saman <jpsaman at videolan.org>

> http://git.videolan.org/gitweb.cgi/libdvbpsi.git/?a=commit;h=9e9cc85fbfc80ed74b80434073d617f82ad95933
---

 src/descriptors/dr_4a.c |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/descriptors/dr_4a.c b/src/descriptors/dr_4a.c
index da1b80e..e4d2b3e 100644
--- a/src/descriptors/dr_4a.c
+++ b/src/descriptors/dr_4a.c
@@ -98,6 +98,7 @@ dvbpsi_linkage_dr_t* dvbpsi_DecodeLinkageDr(dvbpsi_descriptor_t * p_descriptor)
     {
         p_decoded->i_handover_type = handover_type;
         p_decoded->i_origin_type = origin_type;
+        i = 8;
         if (handover_type > 0 && handover_type < 4)
         {
             p_decoded->i_network_id = p_descriptor->p_data[8] << 8
@@ -183,6 +184,7 @@ dvbpsi_descriptor_t * dvbpsi_GenLinkageDr(dvbpsi_linkage_dr_t * p_decoded,
     {
     	p_descriptor->p_data[7] = ( (p_decoded->i_handover_type & 0x0F) << 4 )
     			| 0x0E | ( p_decoded->i_origin_type & 0x01 );
+        last_pos = 7;
         if ((p_decoded->i_handover_type > 0) &&
             (p_decoded->i_handover_type < 3 ))
         {



More information about the libdvbpsi-devel mailing list