plan9fox/sys/src/libdraw/badrect.c
cinap_lenrek 202be57bb9 draw: add badrect() function to reject zero, negative size or orverly huge rectangles
not checking the rectangle dimensions causes integer overflows
and memory corruption. adding a new badrect() function that checks
for these cases.
2013-06-16 19:01:46 +02:00

23 lines
286 B
C

#include <u.h>
#include <libc.h>
#include <draw.h>
/*
* check for zero, negative size or insanely huge rectangle.
*/
int
badrect(Rectangle r)
{
int x, y;
uint z;
x = Dx(r);
y = Dy(r);
if(x > 0 && y > 0){
z = x*y;
if(z/x == y && z < 0x10000000)
return 0;
}
return 1;
}