From 811e508c8434815a8a9b96233a3cc72ef5c95a2e Mon Sep 17 00:00:00 2001 From: kojima Date: Fri, 8 Nov 2002 17:05:35 +0000 Subject: [PATCH] fix overflow bug, try2 --- wrlib/raster.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wrlib/raster.c b/wrlib/raster.c index bb885c80..2048bdf9 100644 --- a/wrlib/raster.c +++ b/wrlib/raster.c @@ -43,11 +43,14 @@ RImage* RCreateImage(unsigned width, unsigned height, int alpha) { RImage *image=NULL; + unsigned bla1, bla2; assert(width>0 && height>0); - /* check for too large images (cap on INT_MAX just to be sure :P) */ - if (width > (INT_MAX/4)/height+4) { + /* detect overflow (gr33tz to ruda :D) */ + bla1 = width*height; + bla2 = bla1*4; + if (bla1/height != width || bla2/4 != bla1 || bla2 > INT_MAX-32) { RErrorCode = RERR_NOMEMORY; return NULL; }