video: fbdev: via: refactor strcpy and viafb_name
PATCH v3 1/1 video: fbdev: via: refactor strcpy and viafb_name
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.
---
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(-)
drivers/video/fbdev/via/viafbdev.c +2 -2
@@ -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)); fix->smem_start = viaparinfo->fbmem; fix->smem_len = viaparinfo->fbmem_free;
Signature · 1 line
2.43.0
Helge Deller
maintainerQuoted 48 lines · Ajith P V
Replace the deprecated and unbounded
strcpy()function with the saferstrscpy()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_namepointer into astatic 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.
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(-)drivers/video/fbdev/via/viafbdev.c +1
-1@@ -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 */
drivers/video/fbdev/via/viafbdev.c static void viafb_setup_fixinfo(struct fb_fix_screeninfo *fix, · line 147
Quoted 5 lines
drivers/video/fbdev/via/viafbdev.c +1
-1@@ -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