invertRect should handle negative x or y values

two-column mode combined with showing links in pdf files triggers this bug
This commit is contained in:
Dobrica Pavlinusic
2012-09-26 18:54:49 +02:00
committed by Qingping Hou
parent 49112513a4
commit 66efe66f61

View File

@@ -394,6 +394,29 @@ static int invertRect(lua_State *L) {
uint8_t *dstptr;
int cy, cx;
//printf("## invertRect x=%d y=%d w=%d h=%d\n",x,y,w,h);
if (x < 0) {
if ( x + w > 0 ) {
w = w + x;
x = 0;
} else {
//printf("## invertRect x out of bound\n");
return 0;
}
}
if (y < 0) {
if ( y + h > 0 ) {
h = h + y;
y = 0;
} else {
//printf("## invertRect y out of bound\n");
return 0;
}
}
if(w <= 0 || h <= 0 || x >= dst->w || y >= dst->h) {
return 0;
}