X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Finput%2Fdemux.c;h=dcc6b16cdeccdb7370b240419bbf0dbee3c8ec2f;hb=f96f02d9958fefa8381106084eb2b114b3cc544e;hp=e887b3febc38be2b32e52165d7f840bfc25941af;hpb=cf0901c37f0bd0ce17177ba9f4ee578783556ac0;p=vlc diff --git a/src/input/demux.c b/src/input/demux.c index e887b3febc..dcc6b16cde 100644 --- a/src/input/demux.c +++ b/src/input/demux.c @@ -308,6 +308,9 @@ int demux_vaControlHelper( stream_t *s, case DEMUX_GET_META: return stream_vaControl( s, STREAM_GET_META, args ); + case DEMUX_IS_PLAYLIST: + return stream_vaControl(s, STREAM_IS_DIRECTORY, args ); + case DEMUX_GET_PTS_DELAY: case DEMUX_GET_FPS: case DEMUX_HAS_UNSUPPORTED_META: @@ -398,7 +401,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 +433,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 );