[vlc-commits] demux: check stream_Read() (probably fixes #12276)

Rémi Denis-Courmont git at videolan.org
Wed Sep 24 20:58:13 CEST 2014


vlc/vlc-2.2 | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Wed Sep 24 21:52:16 2014 +0300| [f54f04d0971b074c846e5416afa7a407073f6239] | committer: Rémi Denis-Courmont

demux: check stream_Read() (probably fixes #12276)

stream_Read() can always fail.

(cherry picked from commit ddcf5d1ce2904f2975d0b7f7b236454fd7bc41f5)

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

 src/input/demux.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/input/demux.c b/src/input/demux.c
index e887b3f..a0095ab 100644
--- a/src/input/demux.c
+++ b/src/input/demux.c
@@ -398,7 +398,8 @@ static bool SkipID3Tag( demux_t *p_demux )
     i_size += 10;
 
     /* Skip the entire tag */
-    stream_Read( p_demux->s, NULL, i_size );
+    if( stream_Read( p_demux->s, NULL, i_size ) < i_size )
+        return false;
 
     msg_Dbg( p_demux, "ID3v2.%d revision %d tag found, skipping %d bytes",
              version, revision, i_size );
@@ -429,7 +430,8 @@ static bool SkipAPETag( demux_t *p_demux )
     i_size = GetDWLE( &p_peek[8+4] ) + ( (flags&(1<<30)) ? 32 : 0 );
 
     /* Skip the entire tag */
-    stream_Read( p_demux->s, NULL, i_size );
+    if( stream_Read( p_demux->s, NULL, i_size ) < i_size )
+        return false;
 
     msg_Dbg( p_demux, "AP2 v%d tag found, skipping %d bytes",
              i_version/1000, i_size );



More information about the vlc-commits mailing list