protect against people providing out-of-bounds u&v coords in map.

SVN revision: 56313
This commit is contained in:
Carsten Haitzler 2011-01-27 02:59:49 +00:00
parent 9bfc56caf3
commit 725e7cd0d7
2 changed files with 8 additions and 0 deletions

View File

@ -2477,6 +2477,10 @@ evas_object_image_render(Evas_Object *obj, void *output, void *context, void *su
pt->fz = p->z;
pt->u = p->u * FP1;
pt->v = p->v * FP1;
if (pt->u < 0) pt->u = 0;
else if (pt->u > (o->cur.image.w * FP1)) pt->u = (o->cur.image.w * FP1);
if (pt->v < 0) pt->v = 0;
else if (pt->v > (o->cur.image.h * FP1)) pt->v = (o->cur.image.h * FP1);
pt->col = ARGB_JOIN(p->a, p->r, p->g, p->b);
}
obj->layer->evas->engine.func->image_map4_draw

View File

@ -733,6 +733,10 @@ evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface,
pt->fz = p->z;
pt->u = p->u * FP1;
pt->v = p->v * FP1;
if (pt->u < 0) pt->u = 0;
else if (pt->u > (sw * FP1)) pt->u = (sw * FP1);
if (pt->v < 0) pt->v = 0;
else if (pt->v > (sh * FP1)) pt->v = (sh * FP1);
pt->col = ARGB_JOIN(p->a, p->r, p->g, p->b);
}