diff --git a/libavcodec/alac.c b/libavcodec/alac.c index db83796963..1fc4dc5cec 100644 --- a/libavcodec/alac.c +++ b/libavcodec/alac.c @@ -511,9 +511,9 @@ static int alac_set_info(ALACContext *alac) bytestream2_skipu(&gb, 12); // size:4, alac:4, version:4 alac->max_samples_per_frame = bytestream2_get_be32u(&gb); - if (alac->max_samples_per_frame >= UINT_MAX/4){ - av_log(alac->avctx, AV_LOG_ERROR, - "max_samples_per_frame too large\n"); + if (!alac->max_samples_per_frame || alac->max_samples_per_frame > INT_MAX) { + av_log(alac->avctx, AV_LOG_ERROR, "max samples per frame invalid: %u\n", + alac->max_samples_per_frame); return AVERROR_INVALIDDATA; } bytestream2_skipu(&gb, 1); // compatible version