vlc | branch: master | Francois Cartegnie <[email protected]> | Thu Dec 22 
13:36:23 2016 +0100| [d9d6a959409396978cea58d63df51d75d8c92fae] | committer: 
Francois Cartegnie

demux: ts: reject incorrect sized packets

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

 modules/demux/mpeg/ts.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/modules/demux/mpeg/ts.c b/modules/demux/mpeg/ts.c
index 3f61744..a7091e2 100644
--- a/modules/demux/mpeg/ts.c
+++ b/modules/demux/mpeg/ts.c
@@ -616,6 +616,13 @@ static int Demux( demux_t *p_demux )
             p_sys->b_start_record = false;
         }
 
+        /* Early reject truncated packets from hw devices */
+        if( unlikely(p_pkt->i_buffer < TS_PACKET_SIZE_188) )
+        {
+            block_Release( p_pkt );
+            continue;
+        }
+
         /* Parse the TS packet */
         ts_pid_t *p_pid = GetPID( p_sys, PIDGet( p_pkt ) );
 
@@ -1933,6 +1940,12 @@ static int ProbeChunk( demux_t *p_demux, int i_program, 
bool b_end, int64_t *pi_
             break;
         }
 
+        if( p_pkt->i_size < TS_PACKET_SIZE_188 )
+        {
+            block_Release( p_pkt );
+            continue;
+        }
+
         const int i_pid = PIDGet( p_pkt );
         ts_pid_t *p_pid = GetPID(p_sys, i_pid);
 

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

Reply via email to