diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c index 1d3b35ec8e39..7bf48e478c05 100644 --- a/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c @@ -1090,7 +1090,13 @@ static int fb_copyarea_user(struct fb_info *info, int ret = 0; if (!lock_fb_info(info)) return -ENODEV; - if (copy->dx + copy->width > info->var.xres || + if (copy->dx >= info->var.xres || + copy->sx >= info->var.xres || + copy->width > info->var.xres || + copy->dy >= info->var.yres || + copy->sy >= info->var.yres || + copy->height > info->var.yres || + copy->dx + copy->width > info->var.xres || copy->sx + copy->width > info->var.xres || copy->dy + copy->height > info->var.yres || copy->sy + copy->height > info->var.yres) {