Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
to consider:
- [Critical] Changing the driver identification string exposed in the 
fb_fix_screeninfo structure from "Via" to "viafb" breaks userspace ABI backward 
compatibility.
--

--- Patch [1]: [PATCH v2] video: fbdev: via: refactor strcpy and viafb_name ---
commit 31193988a75e693bb97d9723171d248ff11a2f17
Author: Ajith P V <[email protected]>

video: fbdev: via: refactor strcpy and viafb_name

This commit replaces unbounded strcpy() calls with strscpy() to harden the
framebuffer screen info initialization. It also converts the viafb_name
pointer into a static const char array and changes its string value.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strcpy [1]
Link: https://github.com/KSPP/linux/issues/88 [2]

> diff --git a/drivers/video/fbdev/via/viafbdev.c 
> b/drivers/video/fbdev/via/viafbdev.c
> index 80f95dac32c8c..b3a2e07b61a7c 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[] = "viafb";

[Severity: Critical]
Does changing this string from "Via" to "viafb" cause a userspace ABI
regression?

Userspace tools and display servers, such as Xorg's via driver, often
rely on the exact identification string returned in the id field of
fb_fix_screeninfo by the framebuffer ioctl to detect hardware and apply
specific quirks.

Could the compile-time bounds checking and optimization benefits still be
achieved without modifying the exposed string value, perhaps by defining
it as 'static const char viafb_name[] = "Via";' instead?

>  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;

-- 
Sashiko AI review ยท 
https://sashiko.dev/#/patchset/[email protected]?part=1

Reply via email to