diff --git a/libavformat/asfdec_o.c b/libavformat/asfdec_o.c index 6260308b8a..9eb246a030 100644 --- a/libavformat/asfdec_o.c +++ b/libavformat/asfdec_o.c @@ -1367,6 +1367,8 @@ static int asf_read_packet_header(AVFormatContext *s) unsigned char error_flags, len_flags, pay_flags; asf->packet_offset = avio_tell(pb); + if (asf->packet_offset > INT64_MAX/2) + asf->packet_offset = 0; error_flags = avio_r8(pb); // read Error Correction Flags if (error_flags & ASF_PACKET_FLAG_ERROR_CORRECTION_PRESENT) { if (!(error_flags & ASF_ERROR_CORRECTION_LENGTH_TYPE)) {