diff --git a/libavcodec/alsdec.c b/libavcodec/alsdec.c index e93f44e2e0..1851296b05 100644 --- a/libavcodec/alsdec.c +++ b/libavcodec/alsdec.c @@ -647,7 +647,7 @@ static int read_var_block_data(ALSDecContext *ctx, ALSBlockData *bd) // do not continue in case of a damaged stream since // block_length must be evenly divisible by sub_blocks - if (bd->block_length & (sub_blocks - 1)) { + if (bd->block_length & (sub_blocks - 1) || bd->block_length <= 0) { av_log(avctx, AV_LOG_WARNING, "Block length is not evenly divisible by the number of subblocks.\n"); return AVERROR_INVALIDDATA;