[FFmpeg-devel] [PATCH] lavc/flacdec: Increase residual limit from INT_MAX to UINT_MAX
Martijn van Beurden
mvanb1 at gmail.com
Wed Apr 6 10:12:50 EEST 2022
Op di 5 apr. 2022 om 15:37 schreef Martijn van Beurden <mvanb1 at gmail.com>:
>
> ---
> libavcodec/flacdec.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavcodec/flacdec.c b/libavcodec/flacdec.c
> index dd6026f9de..cb32d7cae8 100644
> --- a/libavcodec/flacdec.c
> +++ b/libavcodec/flacdec.c
> @@ -260,7 +260,7 @@ static int decode_residuals(FLACContext *s, int32_t *decoded, int pred_order)
> for (; i < samples; i++)
> *decoded++ = get_sbits_long(&gb, tmp);
> } else {
> - int real_limit = tmp ? (INT_MAX >> tmp) + 2 : INT_MAX;
> + int real_limit = (tmp > 1) ? (INT_MAX >> (tmp - 1)) + 2 : INT_MAX;
> for (; i < samples; i++) {
> int v = get_sr_golomb_flac(&gb, tmp, real_limit, 1);
> if (v == 0x80000000){
> --
> 2.30.2
>
A file needing this patch to decode properly can be found here:
https://github.com/ktmf01/flac-test-files/blob/main/subset/63%20-%20predictor%20overflow%20check%2C%2024-bit.flac
Kind regards, Martijn van Beurden
More information about the ffmpeg-devel
mailing list