[libav-stable] shorten: Break out of loop looking for fmt chunk if none is found

Martin Storsjö git at libav.org
Thu Sep 12 09:58:53 CEST 2013


Module: libav
Branch: master
Commit: b26742cc308552f242ee2bf93b07a3ff509f4edc

Author:    Martin Storsjö <martin at martin.st>
Committer: Martin Storsjö <martin at martin.st>
Date:      Wed Sep 11 22:19:28 2013 +0300

shorten: Break out of loop looking for fmt chunk if none is found

Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable at libav.org
Signed-off-by: Martin Storsjö <martin at martin.st>

---

 libavcodec/shorten.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/libavcodec/shorten.c b/libavcodec/shorten.c
index 130bde6..c394c52 100644
--- a/libavcodec/shorten.c
+++ b/libavcodec/shorten.c
@@ -221,6 +221,10 @@ 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);
         bytestream2_skip(&gb, len);
+        if (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);
 



More information about the libav-stable mailing list