[FFmpeg-devel] [PATCH 1/3] avformat/avidec: Fix integer overflow in cum_len check

Tomas Härdin tjoppen at acc.umu.se
Fri Mar 9 12:03:33 EET 2018


On 2018-03-09 02:37, Michael Niedermayer wrote:
> Fixes: signed integer overflow: 3775922176 * 4278190080 cannot be represented in type 'long'
> Fixes: Chromium bug 791237
>
> Reported-by: Matt Wolenetz <wolenetz at google.com>
> Reviewed-by: Matt Wolenetz <wolenetz at google.com>
> Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> ---
>   libavformat/avidec.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavformat/avidec.c b/libavformat/avidec.c
> index 3ff515d492..bafe1dc8da 100644
> --- a/libavformat/avidec.c
> +++ b/libavformat/avidec.c
> @@ -670,7 +670,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
>               st->start_time = 0;
>               avio_rl32(pb); /* buffer size */
>               avio_rl32(pb); /* quality */
> -            if (ast->cum_len*ast->scale/ast->rate > 3600) {
> +            if (ast->cum_len > 3600LL * ast->rate / ast->scale) {
>                   av_log(s, AV_LOG_ERROR, "crazy start time, iam scared, giving up\n");
>                   ast->cum_len = 0;
>               }

Isn't there an AVRational compare function for stuff like this?

/Tomas


More information about the ffmpeg-devel mailing list