Apr 19, 2020, 16:05 by mich...@niedermayer.cc:

> Fixes: signed integer overflow: 2147483647 + 1 cannot be represented in type 
> 'int'
> Fixes: 
> 19950/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_BINKAUDIO_DCT_fuzzer-5765514337189888
>
> Found-by: continuous fuzzing process 
> https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc>
> ---
>  libavcodec/binkaudio.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/libavcodec/binkaudio.c b/libavcodec/binkaudio.c
> index 64a08b8608..2df3dc645a 100644
> --- a/libavcodec/binkaudio.c
> +++ b/libavcodec/binkaudio.c
> @@ -106,6 +106,9 @@ static av_cold int decode_init(AVCodecContext *avctx)
>  avctx->sample_fmt = AV_SAMPLE_FMT_FLTP;
>  }
>  
> +    if (sample_rate >= INT_MAX)
> +        return AVERROR_INVALIDDATA;
> +
>  s->frame_len     = 1 << frame_len_bits;
>  s->overlap_len   = s->frame_len / 16;
>  s->block_size    = (s->frame_len - s->overlap_len) * s->channels;
>

Did you even bother to look at the checks you added in this decoder previously?
Specifically 11 lines above?

> if (sample_rate > INT_MAX / avctx->channels)
>     return AVERROR_INVALIDDATA;
> sample_rate  *= avctx->channels;

To start with the sample rate of the avctx is already checked in utils.c, and 
you
still haven't cleaned up any decoders from the checks made unnecessary by you,
so am reminding you again to clean up the codebase by getting rid of them.
At least you might get to clean the codebase for once rather than adding crap 
like this.

So there's only the branch which I quoted that's needed to be fixed, and since 
there's a
check there already, there's no reason to have a check here as well.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to