1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-21 10:55:51 +02:00

avformat/mux: Check pkt->stream_index before using it

This commit stops using pkt->stream_index as index in an AVFormatContext's
streams array before actually comparing the value with the count of
streams in said array. 96e5e6abb9 used
pkt->stream_index in prepare_input_packet() before checking and
6406351222 did likewise in
write_packets_common().

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
Andreas Rheinhardt 2020-05-08 00:46:10 +02:00
parent e0604d508e
commit 39195896f3

View File

@ -761,12 +761,13 @@ static int check_packet(AVFormatContext *s, AVPacket *pkt)
static int prepare_input_packet(AVFormatContext *s, AVPacket *pkt) static int prepare_input_packet(AVFormatContext *s, AVPacket *pkt)
{ {
AVStream *st;
int ret; int ret;
AVStream *st = s->streams[pkt->stream_index];
ret = check_packet(s, pkt); ret = check_packet(s, pkt);
if (ret < 0) if (ret < 0)
return ret; return ret;
st = s->streams[pkt->stream_index];
#if !FF_API_COMPUTE_PKT_FIELDS2 || !FF_API_LAVF_AVCTX #if !FF_API_COMPUTE_PKT_FIELDS2 || !FF_API_LAVF_AVCTX
/* sanitize the timestamps */ /* sanitize the timestamps */
@ -1176,10 +1177,11 @@ static int write_packets_from_bsfs(AVFormatContext *s, AVStream *st, AVPacket *p
static int write_packets_common(AVFormatContext *s, AVPacket *pkt, int interleaved) static int write_packets_common(AVFormatContext *s, AVPacket *pkt, int interleaved)
{ {
AVStream *st = s->streams[pkt->stream_index]; AVStream *st;
int ret = prepare_input_packet(s, pkt); int ret = prepare_input_packet(s, pkt);
if (ret < 0) if (ret < 0)
return ret; return ret;
st = s->streams[pkt->stream_index];
ret = check_bitstream(s, st, pkt); ret = check_bitstream(s, st, pkt);
if (ret < 0) if (ret < 0)