[FFmpeg-cvslog] avcodec/diracdec: Use 64bit in calculation of codeblock coordinates
Michael Niedermayer
git at videolan.org
Sat Nov 1 15:58:22 CET 2014
ffmpeg | branch: release/2.2 | Michael Niedermayer <michaelni at gmx.at> | Tue Oct 28 01:23:40 2014 +0100| [6505eb45bcf450473e606d0d233d7480d5071da6] | committer: Michael Niedermayer
avcodec/diracdec: Use 64bit in calculation of codeblock coordinates
Fixes integer overflow
Fixes out of array read
Fixes: asan_heap-oob_107866c_42_041.drc
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
(cherry picked from commit 526886e6069636a918c8c04db17e864e3d8151c1)
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6505eb45bcf450473e606d0d233d7480d5071da6
---
libavcodec/diracdec.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libavcodec/diracdec.c b/libavcodec/diracdec.c
index 06d8b79..c4e9751 100644
--- a/libavcodec/diracdec.c
+++ b/libavcodec/diracdec.c
@@ -610,10 +610,10 @@ static av_always_inline void decode_subband_internal(DiracContext *s, SubBand *b
top = 0;
for (cb_y = 0; cb_y < cb_height; cb_y++) {
- bottom = (b->height * (cb_y+1)) / cb_height;
+ bottom = (b->height * (cb_y+1LL)) / cb_height;
left = 0;
for (cb_x = 0; cb_x < cb_width; cb_x++) {
- right = (b->width * (cb_x+1)) / cb_width;
+ right = (b->width * (cb_x+1LL)) / cb_width;
codeblock(s, b, &gb, &c, left, right, top, bottom, blockcnt_one, is_arith);
left = right;
}
More information about the ffmpeg-cvslog
mailing list