Re: Patch "fbcon: Prevent that screen size is smaller than font size" has been added to the 4.19-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Aug 05, 2022 at 06:25:43AM +0000, chenjun (AM) wrote:
> 在 2022/7/31 20:16, gregkh@xxxxxxxxxxxxxxxxxxx 写道:
> > 
> > This is a note to let you know that I've just added the patch titled
> > 
> >      fbcon: Prevent that screen size is smaller than font size
> > 
> > to the 4.19-stable tree which can be found at:
> >      http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
> > 
> > The filename of the patch is:
> >       fbcon-prevent-that-screen-size-is-smaller-than-font-size.patch
> > and it can be found in the queue-4.19 subdirectory.
> > 
> > If you, or anyone else, feels it should not be added to the stable tree,
> > please let <stable@xxxxxxxxxxxxxxx> know about it.
> > 
> > 
> >  From foo@baz Sun Jul 31 01:15:34 PM CEST 2022
> > From: Chen Jun <chenjun102@xxxxxxxxxx>
> > Date: Fri, 29 Jul 2022 03:11:39 +0000
> > Subject: fbcon: Prevent that screen size is smaller than font size
> > To: <stable@xxxxxxxxxxxxxxx>, <deller@xxxxxx>, <geert@xxxxxxxxxxxxxx>, <b.zolnierkie@xxxxxxxxxxx>, <gregkh@xxxxxxxxxxxxxxxxxxx>
> > Cc: <xuqiang36@xxxxxxxxxx>, <xiujianfeng@xxxxxxxxxx>
> > Message-ID: <20220729031140.21806-2-chenjun102@xxxxxxxxxx>
> > 
> > From: Helge Deller <deller@xxxxxx>
> > 
> > commit e64242caef18b4a5840b0e7a9bff37abd4f4f933 upstream
> > 
> > We need to prevent that users configure a screen size which is smaller than the
> > currently selected font size. Otherwise rendering chars on the screen will
> > access memory outside the graphics memory region.
> > 
> > This patch adds a new function fbcon_modechange_possible() which
> > implements this check and which later may be extended with other checks
> > if necessary.  The new function is called from the FBIOPUT_VSCREENINFO
> > ioctl handler in fbmem.c, which will return -EINVAL if userspace asked
> > for a too small screen size.
> > 
> > Signed-off-by: Helge Deller <deller@xxxxxx>
> > Reviewed-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> > Link: https://lore.kernel.org/all/20220706150253.2186-1-deller@xxxxxx/
> > [sudip: adjust context]
> > Signed-off-by: Chen Jun <chenjun102@xxxxxxxxxx>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> > ---
> >   drivers/video/fbdev/core/fbcon.c |   28 ++++++++++++++++++++++++++++
> >   drivers/video/fbdev/core/fbmem.c |   10 +++++++---
> >   include/linux/fbcon.h            |    4 ++++
> >   3 files changed, 39 insertions(+), 3 deletions(-)
> > 
> > --- a/drivers/video/fbdev/core/fbcon.c
> > +++ b/drivers/video/fbdev/core/fbcon.c
> > @@ -2729,6 +2729,34 @@ static void fbcon_set_all_vcs(struct fb_
> >   		fbcon_modechanged(info);
> >   }
> >   
> > +/* let fbcon check if it supports a new screen resolution */
> > +int fbcon_modechange_possible(struct fb_info *info, struct fb_var_screeninfo *var)
> > +{
> > +	struct fbcon_ops *ops = info->fbcon_par;
> > +	struct vc_data *vc;
> > +	unsigned int i;
> > +
> > +	WARN_CONSOLE_UNLOCKED();
> > +
> > +	if (!ops)
> > +		return 0;
> > +
> > +	/* prevent setting a screen size which is smaller than font size */
> > +	for (i = first_fb_vc; i <= last_fb_vc; i++) {
> > +		vc = vc_cons[i].d;
> > +		if (!vc || vc->vc_mode != KD_TEXT ||
> > +			   registered_fb[con2fb_map[i]] != info)
> > +			continue;
> > +
> > +		if (vc->vc_font.width  > FBCON_SWAP(var->rotate, var->xres, var->yres) ||
> > +		    vc->vc_font.height > FBCON_SWAP(var->rotate, var->yres, var->xres))
> > +			return -EINVAL;
> > +	}
> > +
> > +	return 0;
> > +}
> > +EXPORT_SYMBOL_GPL(fbcon_modechange_possible);
> > +
> >   static int fbcon_mode_deleted(struct fb_info *info,
> >   			      struct fb_videomode *mode)
> >   {
> > --- a/drivers/video/fbdev/core/fbmem.c
> > +++ b/drivers/video/fbdev/core/fbmem.c
> > @@ -1121,9 +1121,13 @@ static long do_fb_ioctl(struct fb_info *
> >   			console_unlock();
> >   			return -ENODEV;
> >   		}
> > -		info->flags |= FBINFO_MISC_USEREVENT;
> > -		ret = fb_set_var(info, &var);
> > -		info->flags &= ~FBINFO_MISC_USEREVENT;
> > +		ret = fbcon_modechange_possible(info, &var);
> > +		if (!ret) {
> > +			info->flags |= FBINFO_MISC_USEREVENT;
> > +			ret = fb_set_var(info, &var);
> > +			info->flags &= ~FBINFO_MISC_USEREVENT;
> > +		}
> > +		lock_fb_info(info);
> 
> Hi Greg
> 
> Cengiz Can points out that lock_fb_info(info) is wrong.
> 
> Please drop this series.

Ok, now dropping from the 4.19.y queue.  But then someone needs to send
a working backport for it so that I can take the older kernel versions
as well.

thanks,

greg k-h



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux