mirror of https://git.ffmpeg.org/ffmpeg.git
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
This commit is contained in:
parent
0cb83c5638
commit
c9ef6b0932
|
@ -370,13 +370,15 @@ static int decode_band_hdr(IVI45DecContext *ctx, IVIBandDesc *band,
|
||||||
band->scan = scan_index_to_tab[scan_indx];
|
band->scan = scan_index_to_tab[scan_indx];
|
||||||
|
|
||||||
band->quant_mat = get_bits(&ctx->gb, 5);
|
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)) {
|
if (band->quant_mat >= FF_ARRAY_ELEMS(quant_index_to_tab)) {
|
||||||
|
|
||||||
|
if (band->quant_mat == 31)
|
||||||
|
av_log(avctx, AV_LOG_ERROR,
|
||||||
|
"Custom quant matrix encountered!\n");
|
||||||
|
else
|
||||||
avpriv_request_sample(avctx, "Quantization matrix %d",
|
avpriv_request_sample(avctx, "Quantization matrix %d",
|
||||||
band->quant_mat);
|
band->quant_mat);
|
||||||
|
band->quant_mat = -1;
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -386,6 +388,10 @@ static int decode_band_hdr(IVI45DecContext *ctx, IVIBandDesc *band,
|
||||||
"inherited\n");
|
"inherited\n");
|
||||||
return AVERROR_INVALIDDATA;
|
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 */
|
/* decode block huffman codebook */
|
||||||
|
|
Loading…
Reference in New Issue