diff --git a/libavcodec/shorten.c b/libavcodec/shorten.c index 93959dc348..5cb21c541b 100644 --- a/libavcodec/shorten.c +++ b/libavcodec/shorten.c @@ -227,9 +227,11 @@ static int decode_wave_header(AVCodecContext *avctx, const uint8_t *header, while (bytestream2_get_le32(&gb) != MKTAG('f', 'm', 't', ' ')) { len = bytestream2_get_le32(&gb); - if (len<0 || bytestream2_get_bytes_left(&gb) - 8 < len) - return AVERROR_INVALIDDATA; bytestream2_skip(&gb, len); + if (len < 0 || bytestream2_get_bytes_left(&gb) < 16) { + av_log(avctx, AV_LOG_ERROR, "no fmt chunk found\n"); + return AVERROR_INVALIDDATA; + } } len = bytestream2_get_le32(&gb);