scale_calc_y_points(DATA32** p, DATA32 *src, int sw, int sh, int dh, int cy, int ch)
{
int i, val, inc;
-
+ if (sh > SCALE_SIZE_MAX) return;
val = 0;
inc = (sh << 16) / dh;
for (i = 0; i < dh; i++)
scale_calc_x_points(int *p, int sw, int dw, int cx, int cw)
{
int i, val, inc;
-
+ if (sw > SCALE_SIZE_MAX) return;
val = 0;
inc = (sw << 16) / dw;
for (i = 0; i < dw; i++)
{
int i, val, inc;
+ if (s > SCALE_SIZE_MAX) return;
if (d >= s)
{
val = 0;
DATA32 *buf, *pbuf, *pbuf_end;
RGBA_Gfx_Func func = NULL;
+ /* check value to make overflow(only check value related with overflow) */
+ if ((src_region_w > SCALE_SIZE_MAX) ||
+ (src_region_h > SCALE_SIZE_MAX)) return;
+
/* a scanline buffer */
pdst = dst_ptr; // it's been set at (dst_clip_x, dst_clip_y)
pdst_end = pdst + (dst_clip_h * dst_w);
if (!src || !dst) return;
if ((src_len < 1) || (dst_len < 1)) return;
- if ((src_len > 65535) || (dst_len > 65535)) return;
+ if ((src_len > SCALE_SIZE_MAX) || (dst_len > SCALE_SIZE_MAX)) return;
if (mul_col != 0xffffffff)
mul = 1;
if (dir < 0)
if (!src || !mask || !dst) return;
if ((src_len < 1) || (dst_len < 1)) return;
- if ((src_len > 65535) || (dst_len > 65535)) return;
+ if ((src_len > SCALE_SIZE_MAX) || (dst_len > SCALE_SIZE_MAX)) return;
if (mul_col != 0xffffffff)
mul = 1;
if (dir < 0)
if (!mask || !dst) return;
if ((src_len < 1) || (dst_len < 1)) return;
- if ((src_len > 65535) || (dst_len > 65535)) return;
+ if ((src_len > SCALE_SIZE_MAX) || (dst_len > SCALE_SIZE_MAX)) return;
if (dir < 0)
{
pdst += dst_len - 1;
if (!mask || !dst) return;
if ((src_len < 1) || (dst_len < 1)) return;
- if ((src_len > 65535) || (dst_len > 65535)) return;
+ if ((src_len > SCALE_SIZE_MAX) || (dst_len > SCALE_SIZE_MAX)) return;
if (mul_col != 0xffffffff)
mul = 1;
if (dir < 0)
if (!src || !dst) return;
if ((src_len < 1) || (dst_len < 1)) return;
- if ((src_len > 65535) || (dst_len > 65535)) return;
+ if ((src_len > SCALE_SIZE_MAX) || (dst_len > SCALE_SIZE_MAX)) return;
if (mul_col != 0xffffffff)
mul = 1;
if (dir < 0)
if (!src || !mask || !dst) return;
if ((src_len < 1) || (dst_len < 1)) return;
- if ((src_len > 65535) || (dst_len > 65535)) return;
+ if ((src_len > SCALE_SIZE_MAX) || (dst_len > SCALE_SIZE_MAX)) return;
if (mul_col != 0xffffffff)
mul = 1;
if (dir < 0)