diff options
-rw-r--r-- | libavcodec/alac.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/libavcodec/alac.c b/libavcodec/alac.c index 6ffc006..c714d40 100644 --- a/libavcodec/alac.c +++ b/libavcodec/alac.c @@ -511,11 +511,7 @@ static av_cold int alac_decode_close(AVCodecContext *avctx) static int allocate_buffers(ALACContext *alac) { int ch; - int buf_size; - - if (alac->max_samples_per_frame > INT_MAX / sizeof(int32_t)) - goto buf_alloc_fail; - buf_size = alac->max_samples_per_frame * sizeof(int32_t); + int buf_size = alac->max_samples_per_frame * sizeof(int32_t); for (ch = 0; ch < FFMIN(alac->channels, 2); ch++) { FF_ALLOC_OR_GOTO(alac->avctx, alac->predict_error_buffer[ch], @@ -546,7 +542,8 @@ 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 || alac->max_samples_per_frame > INT_MAX) { + if (!alac->max_samples_per_frame || + alac->max_samples_per_frame > INT_MAX / sizeof(int32_t)) { av_log(alac->avctx, AV_LOG_ERROR, "max samples per frame invalid: %u\n", alac->max_samples_per_frame); return AVERROR_INVALIDDATA; |