From 3a64ed9057054a4a82c796f0e92c77bccbaaeb88 Mon Sep 17 00:00:00 2001 From: kostya Date: Sun, 3 May 2009 05:42:51 +0000 Subject: [PATCH] Check whether extra bits block has enough data. Patch by Laurent Aimar "f\145nr\151r >at< vide\157lan o\162g" git-svn-id: file:///var/local/repositories/ffmpeg/trunk@18732 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b --- libavcodec/wavpack.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c index c8ab85843..544ed9649 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) -- 2.39.2