demux: check stream_Read() (probably fixes #12276)
authorRémi Denis-Courmont <remi@remlab.net>
Wed, 24 Sep 2014 18:52:16 +0000 (21:52 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Wed, 24 Sep 2014 18:53:49 +0000 (21:53 +0300)
stream_Read() can always fail.

src/input/demux.c

index e887b3f..a0095ab 100644 (file)
@@ -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 );