Re: [PATCH v3] video: fbdev: via: refactor strcpy and viafb_name
Helge Deller <[email protected]>
| Newsgroups | org.kernel.vger.linux-fbdev,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 8/14/26 09:44, Ajith P V wrote: > Replace the deprecated and unbounded strcpy() function with the safer > strscpy() alternative when setting up the framebuffer fixed screen > information [1][2]. > > It aligns this driver with the ongoing kernel-wide security initiative > to eliminate unbounded string copies, hardening the code against future > modifications. > > Additionally, convert the file-scope `viafb_name` pointer into a > `static const char[]` array while preserving its original value "Via". > This allows the compiler to execute compile-time bounds checking and > optimize the string copy operation without breaking userspace ABI > backward compatibility. > > This is a proactive API cleanup and there is no functional > performance or truncation risk. > > Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strcpy [1] > Link: https://github.com/KSPP/linux/issues/88 [2] > > Signed-off-by: Ajith P V <[email protected]> > --- > v3: > - Restore the original "Via" string value to prevent userspace ABI > regressions, while keeping the 'static const char[]' optimization as > suggested by Sashiko AI. > v2: > - Keep variable static but change it to a const array > 'static const char viafb_name[] = "viafb"' as suggested by Helge Deller > to let the compiler leverage compile-time checks. > > drivers/video/fbdev/via/viafbdev.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/video/fbdev/via/viafbdev.c b/drivers/video/fbdev/via/viafbdev.c > index 80f95dac32c8..f6823beb4d7e 100644 > --- a/drivers/video/fbdev/via/viafbdev.c > +++ b/drivers/video/fbdev/via/viafbdev.c > @@ -16,7 +16,7 @@ > #define _MASTER_FILE > #include "global.h" > > -static char *viafb_name = "Via"; > +static const char viafb_name[] = "Via"; > static u32 pseudo_pal[17]; > > /* video mode */ > @@ -144,7 +144,7 @@ static void viafb_setup_fixinfo(struct fb_fix_screeninfo *fix, > struct viafb_par *viaparinfo) > { > memset(fix, 0, sizeof(struct fb_fix_screeninfo)); > - strcpy(fix->id, viafb_name); > + strscpy(fix->id, viafb_name, sizeof(fix->id)); Please make it simple: strcpy(fix->id, "Via"); Helge