strcpy() has been deprecated because it performs no bounds checking on the destination buffer, which can lead to buffer overflows. Use the safer strscpy() instead. Signed-off-by: Madhur Kumar <madhurkumar004 at gmail.com> --- drivers/gpu/drm/nouveau/nouveau_fence.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_fence.c b/drivers/gpu/drm/nouveau/nouveau_fence.c index 869d4335c0f4..100c7dff4ff8 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fence.c +++ b/drivers/gpu/drm/nouveau/nouveau_fence.c @@ -183,11 +183,11 @@ nouveau_fence_context_new(struct nouveau_channel *chan, struct nouveau_fence_cha fctx->context = drm->runl[chan->runlist].context_base + chan->chid; if (chan == drm->cechan) - strcpy(fctx->name, "copy engine channel"); + strscpy(fctx->name, "copy engine channel", sizeof(fctx->name)); else if (chan == drm->channel) - strcpy(fctx->name, "generic kernel channel"); + strscpy(fctx->name, "generic kernel channel", sizeof(fctx->name)); else - strcpy(fctx->name, cli->name); + strscpy(fctx->name, cli->name, sizeof(fctx->name)); kref_init(&fctx->fence_ref); if (!priv->uevent) -- 2.52.0
On Thu, 04 Dec 2025, Madhur Kumar <madhurkumar004 at gmail.com> wrote:> strcpy() has been deprecated because it performs no bounds checking on the > destination buffer, which can lead to buffer overflows. Use the safer > strscpy() instead. > > Signed-off-by: Madhur Kumar <madhurkumar004 at gmail.com> > --- > drivers/gpu/drm/nouveau/nouveau_fence.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_fence.c b/drivers/gpu/drm/nouveau/nouveau_fence.c > index 869d4335c0f4..100c7dff4ff8 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_fence.c > +++ b/drivers/gpu/drm/nouveau/nouveau_fence.c > @@ -183,11 +183,11 @@ nouveau_fence_context_new(struct nouveau_channel *chan, struct nouveau_fence_cha > fctx->context = drm->runl[chan->runlist].context_base + chan->chid; > > if (chan == drm->cechan) > - strcpy(fctx->name, "copy engine channel"); > + strscpy(fctx->name, "copy engine channel", sizeof(fctx->name)); > else if (chan == drm->channel) > - strcpy(fctx->name, "generic kernel channel"); > + strscpy(fctx->name, "generic kernel channel", sizeof(fctx->name)); > else > - strcpy(fctx->name, cli->name); > + strscpy(fctx->name, cli->name, sizeof(fctx->name));I don't think you actually need the third parameter here. strscpy() is magic, look up its definition. BR, Jani.> > kref_init(&fctx->fence_ref); > if (!priv->uevent)-- Jani Nikula, Intel
strcpy() has been deprecated because it performs no bounds checking on the destination buffer, which can lead to buffer overflows. Use the safer strscpy() instead. Signed-off-by: Madhur Kumar <madhurkumar004 at gmail.com> --- changes in v2: - Remove the size parameter from strscpy drivers/gpu/drm/nouveau/nouveau_fence.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_fence.c b/drivers/gpu/drm/nouveau/nouveau_fence.c index 869d4335c0f4..4a193b7d6d9e 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fence.c +++ b/drivers/gpu/drm/nouveau/nouveau_fence.c @@ -183,11 +183,11 @@ nouveau_fence_context_new(struct nouveau_channel *chan, struct nouveau_fence_cha fctx->context = drm->runl[chan->runlist].context_base + chan->chid; if (chan == drm->cechan) - strcpy(fctx->name, "copy engine channel"); + strscpy(fctx->name, "copy engine channel"); else if (chan == drm->channel) - strcpy(fctx->name, "generic kernel channel"); + strscpy(fctx->name, "generic kernel channel"); else - strcpy(fctx->name, cli->name); + strscpy(fctx->name, cli->name); kref_init(&fctx->fence_ref); if (!priv->uevent) -- 2.52.0