diff options
author | James Almer <jamrial@gmail.com> | 2023-04-08 14:59:40 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2023-04-08 15:24:44 -0300 |
commit | 82a14f360279ab252c2d17719ae72dd361f8277d (patch) | |
tree | dd33e16f60128df98a599ce6719ab2bc41a5ac43 /libavformat | |
parent | 05e34523bc5db91618c0f1e9c8923eaf3ed1e74d (diff) | |
download | ffmpeg-82a14f360279ab252c2d17719ae72dd361f8277d.tar.gz |
avformat/matroskadec: also validate the mapping when BlockAddIDType is 0
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/matroskadec.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index b3922ab8b0..6cccbcbe03 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -2389,16 +2389,18 @@ static int mkv_parse_block_addition_mappings(AVFormatContext *s, AVStream *st, M for (int i = 0; i < mappings_list->nb_elem; i++) { MatroskaBlockAdditionMapping *mapping = &mappings[i]; + uint64_t type = mapping->type; switch (mapping->type) { case MATROSKA_BLOCK_ADD_ID_TYPE_DEFAULT: av_log(s, AV_LOG_DEBUG, "Explicit block Addition Mapping type \"Use BlockAddIDValue\", value %"PRIu64"," " name \"%s\" found.\n", mapping->value, mapping->name ? mapping->name : ""); - break; + type = MATROSKA_BLOCK_ADD_ID_TYPE_OPAQUE; + // fall-through case MATROSKA_BLOCK_ADD_ID_TYPE_OPAQUE: case MATROSKA_BLOCK_ADD_ID_TYPE_ITU_T_T35: - if (mapping->value != mapping->type) { + if (mapping->value != type) { int strict = s->strict_std_compliance >= FF_COMPLIANCE_STRICT; av_log(s, strict ? AV_LOG_ERROR : AV_LOG_WARNING, "Invalid Block Addition Value 0x%"PRIx64" for Block Addition Mapping Type " |