mirror of https://git.ffmpeg.org/ffmpeg.git
Handle chunks with the MSB in size set correctly that is unsigned.
Originally committed as revision 17491 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
96c3da93e6
commit
f5007cc844
|
@ -643,12 +643,13 @@ static int avi_read_packet(AVFormatContext *s, AVPacket *pkt)
|
||||||
{
|
{
|
||||||
AVIContext *avi = s->priv_data;
|
AVIContext *avi = s->priv_data;
|
||||||
ByteIOContext *pb = s->pb;
|
ByteIOContext *pb = s->pb;
|
||||||
int n, d[8], size;
|
int n, d[8];
|
||||||
|
unsigned int size;
|
||||||
int64_t i, sync;
|
int64_t i, sync;
|
||||||
void* dstr;
|
void* dstr;
|
||||||
|
|
||||||
if (CONFIG_DV_DEMUXER && avi->dv_demux) {
|
if (CONFIG_DV_DEMUXER && avi->dv_demux) {
|
||||||
size = dv_get_packet(avi->dv_demux, pkt);
|
int size = dv_get_packet(avi->dv_demux, pkt);
|
||||||
if (size >= 0)
|
if (size >= 0)
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
@ -788,7 +789,7 @@ resync:
|
||||||
|
|
||||||
n= get_stream_idx(d+2);
|
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);
|
//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 + size > avi->fsize || d[0]<0)
|
if(i + (uint64_t)size > avi->fsize || d[0]<0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
//parse ix##
|
//parse ix##
|
||||||
|
|
Loading…
Reference in New Issue