alac: Reject rice_limit 0 if compression is used
If in compression mode rice_limit = 0 leads to call `show_bits(gb, k)` in `decode_scalar` with k = 0. Request a sample in case it is valid and it should be accepted. Signed-off-by: Luca Barbato <lu_zero@gentoo.org> CC: libav-stable@libav.org
This commit is contained in:
committed by
Luca Barbato
parent
295e05a762
commit
243e8443cd
@@ -307,6 +307,12 @@ static int decode_element(AVCodecContext *avctx, AVFrame *frame, int ch_index,
|
|||||||
int lpc_quant[2];
|
int lpc_quant[2];
|
||||||
int rice_history_mult[2];
|
int rice_history_mult[2];
|
||||||
|
|
||||||
|
if (!alac->rice_limit) {
|
||||||
|
avpriv_request_sample(alac->avctx,
|
||||||
|
"Compression with rice limit 0");
|
||||||
|
return AVERROR(ENOSYS);
|
||||||
|
}
|
||||||
|
|
||||||
decorr_shift = get_bits(&alac->gb, 8);
|
decorr_shift = get_bits(&alac->gb, 8);
|
||||||
decorr_left_weight = get_bits(&alac->gb, 8);
|
decorr_left_weight = get_bits(&alac->gb, 8);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user