Re: [PATCH] drm/amdgpu: Replace deprecated strcpy with strscpy

Alex Deucher <[email protected]>
Newsgroups org.freedesktop.lists.amd-gfx,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel
Message-ID <CADnq5_NhH0WC_r7SVPyXOG4r36O++sUGis2Ej-A9J4MNJu7GoA@mail.gmail.com>
On Tue, Aug 18, 2026 at 1:51 PM Amin <[email protected]> wrote:
>
> You raise a fair point about the compile-time truncation check.
> My reasoning follows the kernel's own deprecation guidance, which
> explicitly lists strcpy() as deprecated and names strscpy() as the
> safe replacement:
>
> https://www.kernel.org/doc/html/latest/process/deprecated.html#strcpy

RIght.  My thinking was that strscpy() would be preferred to avoid
static checkers from complaining about strcpy().

Alex

>
> Regards.
> Amin.
>
> Le mar. 18 août 2026 à 19:39, Alex Deucher <[email protected]> a écrit :
> >
> > On Tue, Aug 18, 2026 at 10:21 AM David Laight
> > <[email protected]> wrote:
> > >
> > > On Tue, 18 Aug 2026 09:01:43 -0400
> > > Alex Deucher <[email protected]> wrote:
> > >
> > > > Applied.  Thanks!
> > > >
> > > > On Tue, Aug 18, 2026 at 7:10 AM Amin Gattout <[email protected]> wrote:
> > > > >
> > > > > strcpy() has been deprecated because it performs no bounds checking
> > > > > on the destination buffer, which can lead to buffer overflows. Replace
> > > > > it with the safer strscpy().  No functional changes.
> > > > >
> > > > > Signed-off-by: Amin Gattout <[email protected]>
> > > > > ---
> > > > >  drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c | 6 +++---
> > > > >  1 file changed, 3 insertions(+), 3 deletions(-)
> > > > >
> > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c
> > > > > index cc6d1a4e4c3a..1caa393c44d5 100644
> > > > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c
> > > > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mca.c
> > > > > @@ -97,7 +97,7 @@ int amdgpu_mca_mp0_ras_sw_init(struct amdgpu_device *adev)
> > > > >                 return err;
> > > > >         }
> > > > >
> > > > > -       strcpy(ras->ras_block.ras_comm.name, "mca.mp0");
> > > > > +       strscpy(ras->ras_block.ras_comm.name, "mca.mp0");
> > >
> > > I missed this being proposed.
> > > Both strcpy() and strscpy() get converted to the same memcpy()
> > > (which might itself get converted to writing a 64bit constant).
> > >
> > > But if the string were too long strcpy() would generate a compile error
> > > whereas strscpy() just trunctates the string.
> > >
> > > Which one is better?
> >
> > I don't know.  I can go either way on this.
> >
> > Alex
> >
> >
> > >
> > >         David
> > >
> > > > >         ras->ras_block.ras_comm.block = AMDGPU_RAS_BLOCK__MCA;
> > > > >         ras->ras_block.ras_comm.sub_block_index = AMDGPU_RAS_MCA_BLOCK__MP0;
> > > > >         ras->ras_block.ras_comm.type = AMDGPU_RAS_ERROR__MULTI_UNCORRECTABLE;
> > > > > @@ -122,7 +122,7 @@ int amdgpu_mca_mp1_ras_sw_init(struct amdgpu_device *adev)
> > > > >                 return err;
> > > > >         }
> > > > >
> > > > > -       strcpy(ras->ras_block.ras_comm.name, "mca.mp1");
> > > > > +       strscpy(ras->ras_block.ras_comm.name, "mca.mp1");
> > > > >         ras->ras_block.ras_comm.block = AMDGPU_RAS_BLOCK__MCA;
> > > > >         ras->ras_block.ras_comm.sub_block_index = AMDGPU_RAS_MCA_BLOCK__MP1;
> > > > >         ras->ras_block.ras_comm.type = AMDGPU_RAS_ERROR__MULTI_UNCORRECTABLE;
> > > > > @@ -147,7 +147,7 @@ int amdgpu_mca_mpio_ras_sw_init(struct amdgpu_device *adev)
> > > > >                 return err;
> > > > >         }
> > > > >
> > > > > -       strcpy(ras->ras_block.ras_comm.name, "mca.mpio");
> > > > > +       strscpy(ras->ras_block.ras_comm.name, "mca.mpio");
> > > > >         ras->ras_block.ras_comm.block = AMDGPU_RAS_BLOCK__MCA;
> > > > >         ras->ras_block.ras_comm.sub_block_index = AMDGPU_RAS_MCA_BLOCK__MPIO;
> > > > >         ras->ras_block.ras_comm.type = AMDGPU_RAS_ERROR__MULTI_UNCORRECTABLE;
> > > > >
> > > > > ---
> > > > > base-commit: 0f23d56f17fdfc7db69d51f64c8b91bbab947aa9
> > > > > change-id: 20260818-amdgpu-strcpy-0e92d18299c6
> > > > >
> > > > > Best regards,
> > > > > --
> > > > > Amin Gattout <[email protected]>
> > > > >
> > > >
> > >
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.