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 <[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]>
> > > >
> > >
> >

Reply via email to