mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-13 21:28:01 +02:00
simple_idct: idct_4col_put: Fix out of array reads.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
422e3a74b9
commit
689f65126b
@ -53,7 +53,6 @@
|
|||||||
static inline void idct4col_put(uint8_t *dest, int line_size, const DCTELEM *col)
|
static inline void idct4col_put(uint8_t *dest, int line_size, const DCTELEM *col)
|
||||||
{
|
{
|
||||||
int c0, c1, c2, c3, a0, a1, a2, a3;
|
int c0, c1, c2, c3, a0, a1, a2, a3;
|
||||||
const uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;
|
|
||||||
|
|
||||||
a0 = col[8*0];
|
a0 = col[8*0];
|
||||||
a1 = col[8*2];
|
a1 = col[8*2];
|
||||||
@ -63,13 +62,13 @@ static inline void idct4col_put(uint8_t *dest, int line_size, const DCTELEM *col
|
|||||||
c2 = ((a0 - a2) << (CN_SHIFT - 1)) + (1 << (C_SHIFT - 1));
|
c2 = ((a0 - a2) << (CN_SHIFT - 1)) + (1 << (C_SHIFT - 1));
|
||||||
c1 = a1 * C1 + a3 * C2;
|
c1 = a1 * C1 + a3 * C2;
|
||||||
c3 = a1 * C2 - a3 * C1;
|
c3 = a1 * C2 - a3 * C1;
|
||||||
dest[0] = cm[(c0 + c1) >> C_SHIFT];
|
dest[0] = av_clip_uint8((c0 + c1) >> C_SHIFT);
|
||||||
dest += line_size;
|
dest += line_size;
|
||||||
dest[0] = cm[(c2 + c3) >> C_SHIFT];
|
dest[0] = av_clip_uint8((c2 + c3) >> C_SHIFT);
|
||||||
dest += line_size;
|
dest += line_size;
|
||||||
dest[0] = cm[(c2 - c3) >> C_SHIFT];
|
dest[0] = av_clip_uint8((c2 - c3) >> C_SHIFT);
|
||||||
dest += line_size;
|
dest += line_size;
|
||||||
dest[0] = cm[(c0 - c1) >> C_SHIFT];
|
dest[0] = av_clip_uint8((c0 - c1) >> C_SHIFT);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define BF(k) \
|
#define BF(k) \
|
||||||
|
Loading…
Reference in New Issue
Block a user