diff --git a/libavformat/dsfdec.c b/libavformat/dsfdec.c index 41538fd83c..6ef66ba930 100644 --- a/libavformat/dsfdec.c +++ b/libavformat/dsfdec.c @@ -122,8 +122,8 @@ static int dsf_read_header(AVFormatContext *s) avio_skip(pb, 8); st->codecpar->block_align = avio_rl32(pb); - if (st->codecpar->block_align > INT_MAX / st->codecpar->channels) { - avpriv_request_sample(s, "block_align overflow"); + if (st->codecpar->block_align > INT_MAX / st->codecpar->channels || st->codecpar->block_align <= 0) { + avpriv_request_sample(s, "block_align invalid"); return AVERROR_INVALIDDATA; } st->codecpar->block_align *= st->codecpar->channels;