fbdev: au1200fb: replace deprecated strncpy with strscpy
authorJustin Stitt <justinstitt@google.com>
Mon, 18 Mar 2024 23:46:33 +0000 (23:46 +0000)
committerHelge Deller <deller@gmx.de>
Thu, 25 Apr 2024 09:56:48 +0000 (11:56 +0200)
strncpy() is deprecated for use on NUL-terminated destination strings
[1] and as such we should prefer more robust and less ambiguous string
interfaces.

Let's use the new 2-argument strscpy() which guarantees NUL-termination
on the destination buffer while also simplifying the syntax. Note that
strscpy() will not NUL-pad the destination buffer like strncpy() does.

However, the NUL-padding behavior of strncpy() is not required since
fbdev is already NUL-allocated from au1200fb_drv_probe() ->
frameuffer_alloc(), rendering any additional NUL-padding redundant.
| p = kzalloc(fb_info_size + size, GFP_KERNEL);

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strncpy-on-nul-terminated-strings
Link: https://manpages.debian.org/testing/linux-manual-4.8/strscpy.9.en.html
Link: https://github.com/KSPP/linux/issues/90
Cc: linux-hardening@vger.kernel.org
Signed-off-by: Justin Stitt <justinstitt@google.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Helge Deller <deller@gmx.de>
drivers/video/fbdev/au1200fb.c

index 6f20efc663d7e4b4e6971503c8d6682355f86e47..e718fea636628ad3a87459c13dace85b52bb15a9 100644 (file)
@@ -1557,7 +1557,7 @@ static int au1200fb_init_fbinfo(struct au1200fb_device *fbdev)
                return ret;
        }
 
-       strncpy(fbi->fix.id, "AU1200", sizeof(fbi->fix.id));
+       strscpy(fbi->fix.id, "AU1200");
        fbi->fix.smem_start = fbdev->fb_phys;
        fbi->fix.smem_len = fbdev->fb_len;
        fbi->fix.type = FB_TYPE_PACKED_PIXELS;