diff options
author | Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> | 2015-04-24 00:01:43 +0200 |
---|---|---|
committer | Vittorio Giovara <vittorio.giovara@gmail.com> | 2015-05-19 12:14:30 +0100 |
commit | cb5324200ccdc693dd5b28dcd7d4b722fad83ea2 (patch) | |
tree | 2a891f46095af36aa233224359d6a3afd26be205 | |
parent | ac1660509ecfbeca7b63eb5ab8360011180e705b (diff) | |
download | ffmpeg-cb5324200ccdc693dd5b28dcd7d4b722fad83ea2.tar.gz |
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
-rw-r--r-- | libavcodec/alac.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/alac.c b/libavcodec/alac.c index 5272f8416c..5c792c4e6a 100644 --- a/libavcodec/alac.c +++ b/libavcodec/alac.c @@ -307,6 +307,12 @@ static int decode_element(AVCodecContext *avctx, AVFrame *frame, int ch_index, int lpc_quant[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_left_weight = get_bits(&alac->gb, 8); |