Fix decode and generation of linkage descriptor with mobile handover

[email protected] (Daniel Kamil Kozar) Mon, 24 Aug 2015 12:54:42 +0200 (CEST)
Newsgroups gmane.comp.video.videolan.libdvbpsi.devel
Message-ID <[email protected]>
libdvbpsi | branch: master | Daniel Kamil Kozar <[email protected]> | 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 <[email protected]>

> 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 ))
         {

_______________________________________________
libdvbpsi-devel mailing list
[email protected]
https://mailman.videolan.org/listinfo/libdvbpsi-devel