diff --git a/modules/demux/ogg.c b/modules/demux/ogg.c index 5161275870..fc4fe78af3 100644 --- a/modules/demux/ogg.c +++ b/modules/demux/ogg.c @@ -987,6 +987,8 @@ static int Ogg_ReadPage( demux_t *p_demux, ogg_page *p_oggpage ) while( ogg_sync_pageout( &p_ogg->oy, p_oggpage ) != 1 ) { p_buffer = ogg_sync_buffer( &p_ogg->oy, OGGSEEK_BYTES_TO_READ ); + if( !p_buffer ) + return VLC_EGENERIC; i_read = vlc_stream_Read( p_demux->s, p_buffer, OGGSEEK_BYTES_TO_READ ); if( i_read <= 0 ) diff --git a/modules/demux/oggseek.c b/modules/demux/oggseek.c index 8617ae2769..28fb66a771 100644 --- a/modules/demux/oggseek.c +++ b/modules/demux/oggseek.c @@ -204,6 +204,8 @@ static int64_t get_data( demux_t *p_demux, int64_t i_bytes_to_read ) seek_byte ( p_demux, p_sys->i_input_position ); buf = ogg_sync_buffer( &p_sys->oy, i_bytes_to_read ); + if( !buf ) + return 0; i_result = vlc_stream_Read( p_demux->s, buf, i_bytes_to_read ); @@ -1093,6 +1095,8 @@ int64_t oggseek_read_page( demux_t *p_demux ) ogg_sync_reset( &p_ogg->oy ); buf = ogg_sync_buffer( &p_ogg->oy, i_page_size ); + if( !buf ) + return 0; memcpy( buf, header, PAGE_HEADER_BYTES + i_nsegs );