aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2017-11-27 13:39:42 -0300
committerJames Almer <jamrial@gmail.com>2017-11-27 13:39:55 -0300
commit9d464dc3fccb53f1e7c83e3453084c1a7fb90503 (patch)
tree28f1884d4001d5c904e8c1daae77d3a4d5cb8f14
parent2d1594a8d6a754a426cb53184dccf9cf8c8a94b0 (diff)
downloadffmpeg-9d464dc3fccb53f1e7c83e3453084c1a7fb90503.tar.gz
avformat/matroskaenc: actually enforce the stream limit
Prevents out of array accesses. Adressess ticket #6873 Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r--libavformat/matroskaenc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index dad6d6c93f..06126781f8 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -1859,6 +1859,13 @@ static int mkv_write_header(AVFormatContext *s)
av_dict_get(s->metadata, "alpha_mode", NULL, 0))
version = 4;
+ if (s->nb_streams > MAX_TRACKS) {
+ av_log(s, AV_LOG_ERROR,
+ "At most %d streams are supported for muxing in Matroska\n",
+ MAX_TRACKS);
+ return AVERROR(EINVAL);
+ }
+
for (i = 0; i < s->nb_streams; i++) {
if (s->streams[i]->codecpar->codec_id == AV_CODEC_ID_ATRAC3 ||
s->streams[i]->codecpar->codec_id == AV_CODEC_ID_COOK ||