From: Geert Uytterhoeven <geert@linux-m68k.org> To: Helge Deller <deller@gmx.de> Cc: DRI Development <dri-devel@lists.freedesktop.org>, Daniel Vetter <daniel.vetter@ffwll.ch>, Linux Fbdev development list <linux-fbdev@vger.kernel.org> Subject: Re: [PATCH v2 2/4] fbcon: Prevent that screen size is smaller than font size Date: Sun, 3 Jul 2022 10:50:03 +0200 [thread overview] Message-ID: <CAMuHMdUCSbd38H95jSGiTARekE1Y2YUtKfak9cK3xLwd+ubGdQ@mail.gmail.com> (raw) In-Reply-To: <20220701202352.559808-3-deller@gmx.de> Hi Helge, On Fri, Jul 1, 2022 at 10:23 PM Helge Deller <deller@gmx.de> wrote: > 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@gmx.de> > Cc: stable@vger.kernel.org # v5.4+ Thanks for your patch! > --- a/drivers/video/fbdev/core/fbcon.c > +++ b/drivers/video/fbdev/core/fbcon.c > @@ -2736,6 +2736,34 @@ void fbcon_update_vcs(struct fb_info *info, bool all) > } > EXPORT_SYMBOL(fbcon_update_vcs); > > +/* 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; > + int i; unsigned int i > + > + WARN_CONSOLE_UNLOCKED(); > + > + if (!ops) > + return -EINVAL; This means the frame buffer device is not used as a text console (i.e. the text console is mapped to a different frame buffer device), hence it should return success. > + > + /* 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(fbcon_modechange_possible); EXPORT_SYMBOL_GPL()? No idea why most of fbcon uses the non-GPL variant. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
WARNING: multiple messages have this Message-ID (diff)
From: Geert Uytterhoeven <geert@linux-m68k.org> To: Helge Deller <deller@gmx.de> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, Linux Fbdev development list <linux-fbdev@vger.kernel.org>, DRI Development <dri-devel@lists.freedesktop.org> Subject: Re: [PATCH v2 2/4] fbcon: Prevent that screen size is smaller than font size Date: Sun, 3 Jul 2022 10:50:03 +0200 [thread overview] Message-ID: <CAMuHMdUCSbd38H95jSGiTARekE1Y2YUtKfak9cK3xLwd+ubGdQ@mail.gmail.com> (raw) In-Reply-To: <20220701202352.559808-3-deller@gmx.de> Hi Helge, On Fri, Jul 1, 2022 at 10:23 PM Helge Deller <deller@gmx.de> wrote: > 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@gmx.de> > Cc: stable@vger.kernel.org # v5.4+ Thanks for your patch! > --- a/drivers/video/fbdev/core/fbcon.c > +++ b/drivers/video/fbdev/core/fbcon.c > @@ -2736,6 +2736,34 @@ void fbcon_update_vcs(struct fb_info *info, bool all) > } > EXPORT_SYMBOL(fbcon_update_vcs); > > +/* 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; > + int i; unsigned int i > + > + WARN_CONSOLE_UNLOCKED(); > + > + if (!ops) > + return -EINVAL; This means the frame buffer device is not used as a text console (i.e. the text console is mapped to a different frame buffer device), hence it should return success. > + > + /* 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(fbcon_modechange_possible); EXPORT_SYMBOL_GPL()? No idea why most of fbcon uses the non-GPL variant. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
next prev parent reply other threads:[~2022-07-03 8:51 UTC|newest] Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-07-01 20:23 [PATCH v2 0/4] fbcon: Fixes for screen resolution changes - round 2 Helge Deller 2022-07-01 20:23 ` [PATCH v2 1/4] fbcon: Disallow setting font bigger than screen size Helge Deller 2022-07-01 20:23 ` [PATCH v2 2/4] fbcon: Prevent that screen size is smaller than font size Helge Deller 2022-07-03 8:50 ` Geert Uytterhoeven [this message] 2022-07-03 8:50 ` Geert Uytterhoeven 2022-07-01 20:23 ` [PATCH v2 3/4] fbmem: Prevent invalid virtual screen sizes in fb_set_var() Helge Deller 2022-07-03 8:55 ` Geert Uytterhoeven 2022-07-03 8:55 ` Geert Uytterhoeven 2022-07-03 13:53 ` Helge Deller 2022-07-03 13:53 ` Helge Deller 2022-07-03 14:41 ` Geert Uytterhoeven 2022-07-03 14:41 ` Geert Uytterhoeven 2022-07-04 8:38 ` Helge Deller 2022-07-04 8:38 ` Helge Deller 2022-07-01 20:23 ` [PATCH v2 4/4] fbcon: Use fbcon_info_from_console() in fbcon_modechange_possible() Helge Deller 2022-07-01 20:25 ` [PATCH v2 0/4] fbcon: Fixes for screen resolution changes - round 2 Helge Deller -- strict thread matches above, loose matches on Subject: below -- 2022-07-01 20:22 Helge Deller 2022-07-01 20:22 ` [PATCH v2 2/4] fbcon: Prevent that screen size is smaller than font size Helge Deller
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=CAMuHMdUCSbd38H95jSGiTARekE1Y2YUtKfak9cK3xLwd+ubGdQ@mail.gmail.com \ --to=geert@linux-m68k.org \ --cc=daniel.vetter@ffwll.ch \ --cc=deller@gmx.de \ --cc=dri-devel@lists.freedesktop.org \ --cc=linux-fbdev@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.