Re: [PATCH] drivers: dio: replace deprecated strcpy with strscpy in dio_init

Geert Uytterhoeven <[email protected]>
Newsgroups org.kernel.vger.linux-m68k,org.kernel.vger.linux-kernel
Message-ID <CAMuHMdUiMMXrWtsZ5erkoQoYh_4dq1CYD-RiSkZXSVwQAtxo6A@mail.gmail.com>
Hi Thorsten,

On Thu, 30 Apr 2026 at 14:09, Thorsten Blum <[email protected]> wrote:
> strcpy() has been deprecated [1] because it performs no bounds checking
> on the destination buffer, which can lead to buffer overflows. While the
> current code works correctly, replace strcpy() with the safer strscpy()
> to follow secure coding best practices.
>
> Indent multiple lines using tabs instead of spaces, and use pr_info()
> and avoid continuation logging while at it.
>
> [1] https://www.kernel.org/doc/html/latest/process/deprecated.html#strcpy
>
> Signed-off-by: Thorsten Blum <[email protected]>

Thanks for your patch!

Please split this in two patches, as the "while at it" became much
larger than the main change.

> --- a/drivers/dio/dio.c
> +++ b/drivers/dio/dio.c
> @@ -178,7 +178,7 @@ static int __init dio_init(void)
>         if (!MACH_IS_HP300)
>                 return 0;
>
> -        printk(KERN_INFO "Scanning for DIO devices...\n");
> +       pr_info("Scanning for DIO devices...\n");
>
>         /* Initialize the DIO bus */
>         INIT_LIST_HEAD(&dio_bus.devices);
> @@ -247,18 +247,19 @@ static int __init dio_init(void)
>                         dev->id = prid;
>
>                 dev->ipl = DIO_IPL(va);
> -               strcpy(dev->name, dio_getname(dev->id));
> -                printk(KERN_INFO "select code %3d: ipl %d: ID %02X", dev->scode, dev->ipl, prid);
> +               strscpy(dev->name, dio_getname(dev->id));
>                 if (DIO_NEEDSSECID(prid))
> -                        printk(":%02X", secid);
> -                printk(": %s\n", dev->name);
> +                       pr_info("select code %3d: ipl %d: ID %02X:%02X: %s\n",
> +                               dev->scode, dev->ipl, prid, secid, dev->name);
> +               else
> +                       pr_info("select code %3d: ipl %d: ID %02X: %s\n",
> +                               dev->scode, dev->ipl, prid, dev->name);

Looks like a good opportunity to start using "%u" to print dev->ipl,
which is u8.

>
>                 if (scode >= DIOII_SCBASE)
>                         iounmap(va);

The rest LGTM to me.

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.