wnv1: Make sure the input packet is large enough
authorMartin Storsjö <martin@martin.st>
Thu, 19 Sep 2013 21:07:34 +0000 (00:07 +0300)
committerLuca Barbato <lu_zero@gentoo.org>
Fri, 4 Oct 2013 01:26:29 +0000 (03:26 +0200)
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
(cherry picked from commit 91be1103fd1f79d381edf268c32f4166b6c3b6d8)
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
libavcodec/wnv1.c

index 1636f16..362fafc 100644 (file)
@@ -71,6 +71,11 @@ static int decode_frame(AVCodecContext *avctx,
     int prev_y = 0, prev_u = 0, prev_v = 0;
     uint8_t *rbuf;
 
+    if (buf_size < 8) {
+        av_log(avctx, AV_LOG_ERROR, "Packet is too short\n");
+        return AVERROR_INVALIDDATA;
+    }
+
     rbuf = av_malloc(buf_size + FF_INPUT_BUFFER_PADDING_SIZE);
     if (!rbuf) {
         av_log(avctx, AV_LOG_ERROR, "Cannot allocate temporary buffer\n");