aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Barbato <lu_zero@gentoo.org>2013-05-17 18:29:15 +0200
committerReinhard Tartler <siretart@tauware.de>2013-06-22 08:40:13 +0200
commit6711d410dc130b889f1a85a8408dd5ff99b769bf (patch)
treef0b6b084849d55ef26efc34d70bc47bbb05edb01
parentd26bc6c6b69f8f87e51430234bbf4b22962e2b3f (diff)
downloadffmpeg-6711d410dc130b889f1a85a8408dd5ff99b769bf.tar.gz
wavpack: validate samples size parsed in wavpack_decode_block
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org (cherry picked from commit ed50673066956d6f2201a57c3254569f2ab08d9d) Signed-off-by: Reinhard Tartler <siretart@tauware.de> Conflicts: libavcodec/wavpack.c
-rw-r--r--libavcodec/wavpack.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c
index 1098873d7c..7ceb947adb 100644
--- a/libavcodec/wavpack.c
+++ b/libavcodec/wavpack.c
@@ -790,6 +790,9 @@ static int wavpack_decode_block(AVCodecContext *avctx, int block_no,
if (!wc->mkv_mode) {
s->samples = AV_RL32(buf); buf += 4;
+ if (s->samples != wc->samples)
+ return AVERROR_INVALIDDATA;
+
if (!s->samples) {
*got_frame_ptr = 0;
return 0;