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

From: Amin

Date: Tue Aug 18 2026 - 13:53:11 EST


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

Regards.
Amin.

Le mar. 18 août 2026 à 19:39, Alex Deucher <alexdeucher@xxxxxxxxx> a écrit :
>
> On Tue, Aug 18, 2026 at 10:21 AM David Laight
> <david.laight.linux@xxxxxxxxx> wrote:
> >
> > On Tue, 18 Aug 2026 09:01:43 -0400
> > Alex Deucher <alexdeucher@xxxxxxxxx> wrote:
> >
> > > Applied. Thanks!
> > >
> > > On Tue, Aug 18, 2026 at 7:10 AM Amin Gattout <amin.gattout@xxxxxxxxx> 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 <amin.gattout@xxxxxxxxx>
> > > > ---
> > > > 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 <amin.gattout@xxxxxxxxx>
> > > >
> > >
> >