drm/gma500: refactor deprecated strncpy
authorJustin Stitt <justinstitt@google.com>
Tue, 19 Sep 2023 04:41:16 +0000 (04:41 +0000)
committerPatrik Jakobsson <patrik.r.jakobsson@gmail.com>
Wed, 27 Sep 2023 10:38:54 +0000 (12:38 +0200)
`strncpy` is deprecated for use on NUL-terminated destination strings [1].

We should prefer more robust and less ambiguous string interfaces.

Since `chan->base.name` is expected to be NUL-terminated, a suitable
replacement is `strscpy` [2] due to the fact that it guarantees
NUL-termination on the destination buffer without also unnecessarily
NUL-padding (since `chan` is kzalloc'd already).

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strncpy-on-nul-terminated-strings
Link: https://manpages.debian.org/testing/linux-manual-4.8/strscpy.9.en.html
Link: https://github.com/KSPP/linux/issues/90
Cc: linux-hardening@vger.kernel.org
Signed-off-by: Justin Stitt <justinstitt@google.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230919-drivers-gpu-drm-gma500-oaktrail_lvds_i2c-c-v2-1-9ebe6983b4cb@google.com
drivers/gpu/drm/gma500/oaktrail_lvds_i2c.c

index 06b5b2d70d48425fba86b6d7e289974b9451901a..939c53fd09e8755786aa58b7044a66a6265b7bee 100644 (file)
@@ -141,7 +141,7 @@ struct gma_i2c_chan *oaktrail_lvds_i2c_init(struct drm_device *dev)
 
        chan->drm_dev = dev;
        chan->reg = dev_priv->lpc_gpio_base;
-       strncpy(chan->base.name, "gma500 LPC",  I2C_NAME_SIZE - 1);
+       strscpy(chan->base.name, "gma500 LPC",  sizeof(chan->base.name));
        chan->base.owner = THIS_MODULE;
        chan->base.algo_data = &chan->algo;
        chan->base.dev.parent = dev->dev;