Skip to content

Commit

Permalink
amifb: test virtual screen range before subtraction on unsigned
Browse files Browse the repository at this point in the history
dx and dy are u32's, so the test should occur before the subtraction

Signed-off-by: Roel Kluin <12o3l@tiscali.nl>
Cc: Antonino Daplas <adaplas@pol.net>
Cc: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Roel Kluin authored and Linus Torvalds committed Jul 24, 2008
1 parent 816664f commit 091c82c
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions drivers/video/amifb.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)) {
Expand Down

0 comments on commit 091c82c

Please sign in to comment.