mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
avidec: fix signed overflow in avi_sync()
Keeping byte values read from the file as unsigned is consistent with how they are subsequently used and avoids an undefined left shift by 24 when bit 7 is set. Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
parent
0c46e958d1
commit
1703013cb7
@ -843,7 +843,8 @@ static int avi_sync(AVFormatContext *s, int exit_early)
|
||||
{
|
||||
AVIContext *avi = s->priv_data;
|
||||
AVIOContext *pb = s->pb;
|
||||
int n, d[8];
|
||||
int n;
|
||||
unsigned int d[8];
|
||||
unsigned int size;
|
||||
int64_t i, sync;
|
||||
|
||||
@ -860,7 +861,7 @@ start_sync:
|
||||
|
||||
n= get_stream_idx(d+2);
|
||||
//av_log(s, AV_LOG_DEBUG, "%X %X %X %X %X %X %X %X %"PRId64" %d %d\n", d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], i, size, n);
|
||||
if(i + (uint64_t)size > avi->fsize || d[0]<0)
|
||||
if(i + (uint64_t)size > avi->fsize || d[0] > 127)
|
||||
continue;
|
||||
|
||||
//parse ix##
|
||||
|
Loading…
Reference in New Issue
Block a user