vlc | branch: master | Francois Cartegnie <[email protected]> | Fri Jun  6 
21:41:39 2014 +0200| [b557f55da6d3cd8b18cba9f1771dd888aaab6f7e] | committer: 
Francois Cartegnie

demux: ts: fix IOD parsing (fix #11573)

IOD bytes must be read in order.
introduced by 8fdf1f20beb53ec72b7f2a903071857596ce0d72

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=b557f55da6d3cd8b18cba9f1771dd888aaab6f7e
---

 modules/demux/ts.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/modules/demux/ts.c b/modules/demux/ts.c
index c22c266..e882623 100644
--- a/modules/demux/ts.c
+++ b/modules/demux/ts.c
@@ -2625,6 +2625,7 @@ static iod_descriptor_t *IODNew( int i_data, uint8_t 
*p_data )
             ts_debug( "\n* ERR missing DecoderConfigDescr" );
             continue;
         }
+        int i_config_desc_length = IODDescriptorLength( &i_data, &p_data ); /* 
DecoderConfigDescr_length */
         decoder_config_descriptor_t *dec_descr = &es_descr->dec_descr;
         dec_descr->i_objectTypeIndication = IODGetBytes( &i_data, &p_data, 1 );
         i_flags = IODGetBytes( &i_data, &p_data, 1 );
@@ -2634,8 +2635,7 @@ static iod_descriptor_t *IODNew( int i_data, uint8_t 
*p_data )
         IODGetBytes( &i_data, &p_data, 4); /* maxBitrate */
         IODGetBytes( &i_data, &p_data, 4 ); /* avgBitrate */
 
-        int i_decoderConfigDescr_length = IODDescriptorLength( &i_data, 
&p_data );
-        if( i_decoderConfigDescr_length > 13 && IODGetBytes( &i_data, &p_data, 
1 ) == 0x05 )
+        if( i_config_desc_length > 13 && IODGetBytes( &i_data, &p_data, 1 ) == 
0x05 )
         {
             dec_descr->i_extra = IODDescriptorLength( &i_data, &p_data );
             if( dec_descr->i_extra > 0 )

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

Reply via email to