[FFmpeg-devel] [PATCH] lavc/flacdec: Increase residual limit from INT_MAX to UINT_MAX

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Tue Apr 5 19:04:17 EEST 2022


Martijn van Beurden:
> ---
>  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){

Wouldn't it be possible to use unsigned for real_limit?

- Andreas


More information about the ffmpeg-devel mailing list