mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-12-11 17:30:00 +01:00
indeo4: Check the inherited quant_mat
Invalidate it if not supported.
Sample-Id: 00000262-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
(cherry picked from commit c9ef6b0932)
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
Conflicts:
libavcodec/indeo4.c
This commit is contained in:
committed by
Reinhard Tartler
parent
0358a099f8
commit
03457cabd6
@@ -371,13 +371,17 @@ static int decode_band_hdr(IVI45DecContext *ctx, IVIBandDesc *band,
|
||||
band->scan = scan_index_to_tab[scan_indx];
|
||||
|
||||
band->quant_mat = get_bits(&ctx->gb, 5);
|
||||
if (band->quant_mat == 31) {
|
||||
av_log(avctx, AV_LOG_ERROR, "Custom quant matrix encountered!\n");
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
if (band->quant_mat >= FF_ARRAY_ELEMS(quant_index_to_tab)) {
|
||||
av_log_ask_for_sample(avctx, "Quantization matrix %d",
|
||||
band->quant_mat);
|
||||
|
||||
if (band->quant_mat == 31)
|
||||
av_log(avctx, AV_LOG_ERROR,
|
||||
"Custom quant matrix encountered!\n");
|
||||
else
|
||||
av_log_ask_for_sample(avctx, "Quantization matrix %d",
|
||||
band->quant_mat);
|
||||
band->quant_mat = -1;
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
} else {
|
||||
@@ -387,6 +391,10 @@ static int decode_band_hdr(IVI45DecContext *ctx, IVIBandDesc *band,
|
||||
"inherited\n");
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
if (band->quant_mat < 0) {
|
||||
av_log(avctx, AV_LOG_ERROR, "Invalid quant_mat inherited\n");
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
}
|
||||
|
||||
/* decode block huffman codebook */
|
||||
|
||||
Reference in New Issue
Block a user