mirror of
https://github.com/mpv-player/mpv
synced 2025-02-07 23:51:49 +00:00
cache: add sanity-check for sector size
Add sanity-check for sector size to avoid strange crashes if it is too large. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31914 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
2e6ff523dd
commit
837b6d245d
@ -497,13 +497,19 @@ static void *ThreadProc( void *s ){
|
|||||||
|
|
||||||
int cache_stream_fill_buffer(stream_t *s){
|
int cache_stream_fill_buffer(stream_t *s){
|
||||||
int len;
|
int len;
|
||||||
|
int sector_size;
|
||||||
if(!s->cache_pid) return stream_fill_buffer(s);
|
if(!s->cache_pid) return stream_fill_buffer(s);
|
||||||
|
|
||||||
// cache_stats(s->cache_data);
|
// cache_stats(s->cache_data);
|
||||||
|
|
||||||
if(s->pos!=((cache_vars_t*)s->cache_data)->read_filepos) mp_msg(MSGT_CACHE,MSGL_ERR,"!!! read_filepos differs!!! report this bug...\n");
|
if(s->pos!=((cache_vars_t*)s->cache_data)->read_filepos) mp_msg(MSGT_CACHE,MSGL_ERR,"!!! read_filepos differs!!! report this bug...\n");
|
||||||
|
sector_size = ((cache_vars_t*)s->cache_data)->sector_size;
|
||||||
|
if (sector_size > STREAM_MAX_SECTOR_SIZE) {
|
||||||
|
mp_msg(MSGT_CACHE, MSGL_ERR, "Sector size %i larger than maximum %i\n", sector_size, STREAM_MAX_SECTOR_SIZE);
|
||||||
|
sector_size = STREAM_MAX_SECTOR_SIZE;
|
||||||
|
}
|
||||||
|
|
||||||
len=cache_read(s->cache_data,s->buffer, ((cache_vars_t*)s->cache_data)->sector_size);
|
len=cache_read(s->cache_data,s->buffer, sector_size);
|
||||||
//printf("cache_stream_fill_buffer->read -> %d\n",len);
|
//printf("cache_stream_fill_buffer->read -> %d\n",len);
|
||||||
|
|
||||||
if(len<=0){ s->eof=1; s->buf_pos=s->buf_len=0; return 0; }
|
if(len<=0){ s->eof=1; s->buf_pos=s->buf_len=0; return 0; }
|
||||||
|
@ -53,6 +53,7 @@
|
|||||||
#define STREAMTYPE_BLURAY 20
|
#define STREAMTYPE_BLURAY 20
|
||||||
|
|
||||||
#define STREAM_BUFFER_SIZE 2048
|
#define STREAM_BUFFER_SIZE 2048
|
||||||
|
#define STREAM_MAX_SECTOR_SIZE (8*1024)
|
||||||
|
|
||||||
#define VCD_SECTOR_SIZE 2352
|
#define VCD_SECTOR_SIZE 2352
|
||||||
#define VCD_SECTOR_OFFS 24
|
#define VCD_SECTOR_OFFS 24
|
||||||
@ -166,7 +167,7 @@ typedef struct stream {
|
|||||||
#ifdef CONFIG_NETWORKING
|
#ifdef CONFIG_NETWORKING
|
||||||
streaming_ctrl_t *streaming_ctrl;
|
streaming_ctrl_t *streaming_ctrl;
|
||||||
#endif
|
#endif
|
||||||
unsigned char buffer[STREAM_BUFFER_SIZE>VCD_SECTOR_SIZE?STREAM_BUFFER_SIZE:VCD_SECTOR_SIZE];
|
unsigned char buffer[STREAM_BUFFER_SIZE>STREAM_MAX_SECTOR_SIZE?STREAM_BUFFER_SIZE:STREAM_MAX_SECTOR_SIZE];
|
||||||
} stream_t;
|
} stream_t;
|
||||||
|
|
||||||
#ifdef CONFIG_NETWORKING
|
#ifdef CONFIG_NETWORKING
|
||||||
|
Loading…
Reference in New Issue
Block a user