From 0539577b731e9b80704e1dff531f9238c47d2ea3 Mon Sep 17 00:00:00 2001 From: jeanlf Date: Mon, 12 Dec 2022 10:45:38 +0100 Subject: [PATCH] [PATCH] fixed #2346 Gbp-Pq: Name CVE-2022-47095.patch --- src/media_tools/av_parsers.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/media_tools/av_parsers.c b/src/media_tools/av_parsers.c index 71bac7f..6dc277a 100644 --- a/src/media_tools/av_parsers.c +++ b/src/media_tools/av_parsers.c @@ -7060,18 +7060,20 @@ static Bool hevc_parse_vps_extension(HEVC_VPS *vps, GF_BitStream *bs) num_scalability_types = 16; } dimension_id_len[0] = 0; - for (i = 0; i < (num_scalability_types - splitting_flag); i++) { - dimension_id_len[i] = 1 + gf_bs_read_int(bs, 3); - } - - if (splitting_flag) { - for (i = 0; i < num_scalability_types; i++) { - dim_bit_offset[i] = 0; - for (j = 0; j < i; j++) - dim_bit_offset[i] += dimension_id_len[j]; - } - dimension_id_len[num_scalability_types - 1] = 1 + (5 - dim_bit_offset[num_scalability_types - 1]); - dim_bit_offset[num_scalability_types] = 6; + if (num_scalability_types) { + for (i = 0; i < (num_scalability_types - splitting_flag); i++) { + dimension_id_len[i] = 1 + gf_bs_read_int(bs, 3); + } + + if (splitting_flag) { + for (i = 0; i < num_scalability_types; i++) { + dim_bit_offset[i] = 0; + for (j = 0; j < i; j++) + dim_bit_offset[i] += dimension_id_len[j]; + } + dimension_id_len[num_scalability_types - 1] = 1 + (5 - dim_bit_offset[num_scalability_types - 1]); + dim_bit_offset[num_scalability_types] = 6; + } } vps_nuh_layer_id_present_flag = gf_bs_read_int(bs, 1); -- 2.30.2