|
|
|
@@ -789,6 +789,13 @@ static int ff_asf_get_packet(AVFormatContext *s, AVIOContext *pb) |
|
|
|
asf->packet_segments = 1; |
|
|
|
asf->packet_segsizetype = 0x80; |
|
|
|
} |
|
|
|
if (rsize > packet_length - padsize) { |
|
|
|
asf->packet_size_left = 0; |
|
|
|
av_log(s, AV_LOG_ERROR, |
|
|
|
"invalid packet header length %d for pktlen %d-%d at %"PRId64"\n", |
|
|
|
rsize, packet_length, padsize, avio_tell(pb)); |
|
|
|
return -1; |
|
|
|
} |
|
|
|
asf->packet_size_left = packet_length - padsize - rsize; |
|
|
|
if (packet_length < asf->hdr.min_pktsize) |
|
|
|
padsize += asf->hdr.min_pktsize - packet_length; |
|
|
|
|