diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2013-05-17 18:29:15 +0200 |
---|---|---|
committer | Reinhard Tartler <siretart@tauware.de> | 2013-05-31 23:00:30 +0200 |
commit | c340319559bfcd9664a3ea29e73ac80b3fbc2d4d (patch) | |
tree | b7fc6f0a5dbeb553959bb4d3d215c7ae37949c64 | |
parent | 0af5a774ebc96ae9018926dc8b276c7f39767e3e (diff) | |
download | ffmpeg-c340319559bfcd9664a3ea29e73ac80b3fbc2d4d.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.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libavcodec/wavpack.c b/libavcodec/wavpack.c index e8f34fa632..96ea6103cc 100644 --- a/libavcodec/wavpack.c +++ b/libavcodec/wavpack.c @@ -796,6 +796,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; |