[PATCH] amifb: test virtual screen range before subtraction on unsigned

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Roel Kluin
Date: Wednesday, April 23, 2008 - 11:55 am

and another,
---
dx and dy are u32's, so the test should occur before the subtraction

Signed-off-by: Roel Kluin <12o3l@tiscali.nl>
---
diff --git a/drivers/video/amifb.c b/drivers/video/amifb.c
index 4c9ec3f..cc62349 100644
--- a/drivers/video/amifb.c
+++ b/drivers/video/amifb.c
@@ -2048,13 +2048,16 @@ static void amifb_copyarea(struct fb_info *info,
 	width = x2 - dx;
 	height = y2 - dy;
 
+	if (area->sx + dx < area->dx || area->sy + dy < area->dy)
+		return;
+
 	/* update sx,sy */
 	sx = area->sx + (dx - area->dx);
 	sy = area->sy + (dy - area->dy);
 
 	/* the source must be completely inside the virtual screen */
-	if (sx < 0 || sy < 0 || (sx + width) > info->var.xres_virtual ||
-	    (sy + height) > info->var.yres_virtual)
+	if (sx + width > info->var.xres_virtual ||
+			sy + height > info->var.yres_virtual)
 		return;
 
 	if (dy > sy || (dy == sy && dx > sx)) {

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] amifb: test virtual screen range before subtractio ..., Roel Kluin, (Wed Apr 23, 11:55 am)
Re: [Linux-fbdev-devel] [PATCH] atafb: test virtual screen ..., Geert Uytterhoeven, (Thu Apr 24, 2:05 pm)