[SCM] libav/experimental: Check whether extra bits block has enough data. Patch by Laurent Aimar "f\145nr\151r >at< vide\157lan <dot> o\162g"

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:45:15 UTC 2013


The following commit has been merged in the experimental branch:
commit 66311f86d4dec618eeab5af36e96408eb16cd6a5
Author: Laurent Aimar <fenrir at via.ecp.fr>
Date:   Sun May 3 05:42:51 2009 +0000

    Check whether extra bits block has enough data.
    Patch by Laurent Aimar "f\145nr\151r >at< vide\157lan <dot> o\162g"
    
    Originally committed as revision 18732 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c
index c8ab858..544ed96 100644
--- a/libavcodec/wavpack.c
+++ b/libavcodec/wavpack.c
@@ -795,6 +795,14 @@ static int wavpack_decode_frame(AVCodecContext *avctx,
         av_log(avctx, AV_LOG_ERROR, "Packed samples not found\n");
         return -1;
     }
+    if(s->got_extra_bits){
+        const int size = s->gb_extra_bits.size_in_bits - get_bits_count(&s->gb_extra_bits);
+        const int wanted = s->samples * s->extra_bits << s->stereo_in;
+        if(size < wanted){
+            av_log(avctx, AV_LOG_ERROR, "Too small EXTRABITS\n");
+            s->got_extra_bits = 0;
+        }
+    }
 
     if(s->stereo_in){
         if(bpp == 2)

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list