Skip to content

Commit

Permalink
vga16fb: 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>
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

Unverified

No user is associated with the committer email.
1 parent 1c0face commit 77a6e7a
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion drivers/video/vga16fb.c
Original file line number Diff line number Diff line change
@@ -1087,12 +1087,15 @@ static void vga16fb_copyarea(struct fb_info *info, const struct fb_copyarea *are
width = x2 - dx;
height = y2 - dy;

if (sx + dx < old_dx || sy + dy < old_dy)
return;

/* update sx1,sy1 */
sx += (dx - old_dx);
sy += (dy - old_dy);

/* the source must be completely inside the virtual screen */
if (sx < 0 || sy < 0 || (sx + width) > vxres || (sy + height) > vyres)
if (sx + width > vxres || sy + height > vyres)
return;

switch (info->fix.type) {

0 comments on commit 77a6e7a

Please sign in to comment.