diff options
author | Anton Khirnov <anton@khirnov.net> | 2013-11-28 10:54:35 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2014-02-10 15:22:28 +0100 |
commit | 77bb0004bbe18f1498cfecdc68db5f10808b6599 (patch) | |
tree | 5534c51ecfbe61d34abe6d0d75b01453224ae047 /libavcodec | |
parent | a46dc49744bdc4f2e31725b63ac8e41f701e4fa1 (diff) | |
download | ffmpeg-77bb0004bbe18f1498cfecdc68db5f10808b6599.tar.gz |
rpza: limit the number of blocks to the total remaining blocks in the frame
Fixes invalid writes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/rpza.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libavcodec/rpza.c b/libavcodec/rpza.c index 0efd7f4712..83dde7a9c3 100644 --- a/libavcodec/rpza.c +++ b/libavcodec/rpza.c @@ -119,6 +119,8 @@ static void rpza_decode_stream(RpzaContext *s) } } + n_blocks = FFMIN(n_blocks, total_blocks); + switch (opcode & 0xe0) { /* Skip blocks */ |