On Sun, Jun 26, 2022 at 12:06:30AM +0200, Helge Deller wrote: > Prevent that drivers or the user sets the virtual screen resolution > smaller than the physical screen resolution. This is important, because > otherwise we may get accesses outside of the graphics memory area. > > Signed-off-by: Helge Deller <deller@xxxxxx> > Cc: stable@xxxxxxxxxxxxxxx # v5.4+ Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > --- > drivers/video/fbdev/core/fbmem.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c > index 160389365a36..b6e1d0f2b974 100644 > --- a/drivers/video/fbdev/core/fbmem.c > +++ b/drivers/video/fbdev/core/fbmem.c > @@ -1006,6 +1006,12 @@ fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var) > if (var->xres < 8 || var->yres < 8) > return -EINVAL; > > + /* make sure virtual resolution >= physical resolution */ > + if (var->xres_virtual < var->xres) > + return -EINVAL; > + if (var->yres_virtual < var->yres) > + return -EINVAL; > + > /* Too huge resolution causes multiplication overflow. */ > if (check_mul_overflow(var->xres, var->yres, &unused) || > check_mul_overflow(var->xres_virtual, var->yres_virtual, &unused)) > -- > 2.35.3 > -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch