diff --git a/ffmpeg.c b/ffmpeg.c index 5548d41e78..85ead5b9d4 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -3220,6 +3220,9 @@ static int opt_input_ts_scale(const char *opt, const char *arg) p++; scale= strtod(p, &p); + if(stream >= MAX_STREAMS) + ffmpeg_exit(1); + ts_scale = grow_array(ts_scale, sizeof(*ts_scale), &nb_ts_scale, stream + 1); ts_scale[stream] = scale; return 0; @@ -3849,7 +3852,7 @@ static int opt_streamid(const char *opt, const char *arg) ffmpeg_exit(1); } *p++ = '\0'; - idx = parse_number_or_die(opt, idx_str, OPT_INT, 0, INT_MAX); + idx = parse_number_or_die(opt, idx_str, OPT_INT, 0, MAX_STREAMS-1); streamid_map = grow_array(streamid_map, sizeof(*streamid_map), &nb_streamid_map, idx+1); streamid_map[idx] = parse_number_or_die(opt, p, OPT_INT, 0, INT_MAX); return 0;