mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-13 10:51:38 +00:00
Merge commit '8375dc1dd101d51baa430f34c0bcadfa37873896'
* commit '8375dc1dd101d51baa430f34c0bcadfa37873896': asfdec: handle the case when the stream index has an invalid value better Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
This commit is contained in:
commit
bf67ae3cfa
@ -1276,8 +1276,16 @@ static int asf_read_payload(AVFormatContext *s, AVPacket *pkt)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!asf_pkt)
|
if (!asf_pkt) {
|
||||||
|
if (asf->packet_offset + asf->packet_size <= asf->data_offset + asf->data_size) {
|
||||||
|
avio_seek(pb, asf->packet_offset + asf->packet_size, SEEK_SET);
|
||||||
|
av_log(s, AV_LOG_WARNING, "Skipping the stream with the invalid stream index %d.\n",
|
||||||
|
asf->stream_index);
|
||||||
|
return AVERROR(EAGAIN);
|
||||||
|
} else
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
|
}
|
||||||
|
|
||||||
if (stream_num >> 7)
|
if (stream_num >> 7)
|
||||||
asf_pkt->flags |= AV_PKT_FLAG_KEY;
|
asf_pkt->flags |= AV_PKT_FLAG_KEY;
|
||||||
READ_LEN(asf->prop_flags & ASF_PL_MASK_MEDIA_OBJECT_NUMBER_LENGTH_FIELD_SIZE,
|
READ_LEN(asf->prop_flags & ASF_PL_MASK_MEDIA_OBJECT_NUMBER_LENGTH_FIELD_SIZE,
|
||||||
@ -1418,8 +1426,14 @@ static int asf_read_packet(AVFormatContext *s, AVPacket *pkt)
|
|||||||
else
|
else
|
||||||
asf->state = READ_MULTI;
|
asf->state = READ_MULTI;
|
||||||
}
|
}
|
||||||
if ((ret = asf_read_payload(s, pkt)) < 0)
|
ret = asf_read_payload(s, pkt);
|
||||||
|
if (ret == AVERROR(EAGAIN)) {
|
||||||
|
asf->state = PARSE_PACKET_HEADER;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
else if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
switch (asf->state) {
|
switch (asf->state) {
|
||||||
case READ_SINGLE:
|
case READ_SINGLE:
|
||||||
if (!asf->sub_left)
|
if (!asf->sub_left)
|
||||||
|
Loading…
Reference in New Issue
Block a user