libmp4: sidx: Return early if there are no items in the box
authorHugo Beauzée-Luyssen <hugo@beauzee.fr>
Fri, 8 Dec 2017 13:00:41 +0000 (14:00 +0100)
committerHugo Beauzée-Luyssen <hugo@beauzee.fr>
Fri, 8 Dec 2017 13:01:48 +0000 (14:01 +0100)
This also fixes a buffer overrun when MP4_VERBOSE is defined and i_count
is 0

modules/demux/mp4/libmp4.c

index 769a797..60767f9 100644 (file)
@@ -1027,6 +1027,8 @@ static int MP4_ReadBox_sidx(  stream_t *p_stream, MP4_Box_t *p_box )
     VLC_UNUSED(i_reserved);
     MP4_GET2BYTES( i_reserved );
     MP4_GET2BYTES( i_count );
+    if( i_count == 0 )
+        MP4_READBOX_EXIT( 1 );
 
     p_sidx_data->i_reference_count = i_count;
     p_sidx_data->p_items = vlc_alloc( i_count, sizeof( MP4_Box_sidx_item_t ) );