Re: [PATCH] inifiniband: ucaps: avoid format-security warning
From: Leon Romanovsky
Date: Mon Mar 17 2025 - 07:50:14 EST
On Fri, Mar 14, 2025 at 04:57:15PM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> Passing a non-constant format string to dev_set_name causes a warning:
>
> drivers/infiniband/core/ucaps.c:173:33: error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security]
> 173 | ret = dev_set_name(&ucap->dev, ucap_names[type]);
> | ^~~~~~~~~~~~~~~~
> drivers/infiniband/core/ucaps.c:173:33: note: treat the string as an argument to avoid this
> 173 | ret = dev_set_name(&ucap->dev, ucap_names[type]);
> | ^
> | "%s",
>
> Turn the name into thet %s argument as suggested by gcc.
>
> Fixes: 61e51682816d ("RDMA/uverbs: Introduce UCAP (User CAPabilities) API")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> drivers/infiniband/core/ucaps.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Why don't you change ucap_names[] declaration instead?
diff --git a/drivers/infiniband/core/ucaps.c b/drivers/infiniband/core/ucaps.c
index 6853c6d078f9..90ac41bc0f07 100644
--- a/drivers/infiniband/core/ucaps.c
+++ b/drivers/infiniband/core/ucaps.c
@@ -23,7 +23,7 @@ struct ib_ucap {
struct kref ref;
};
-static const char *ucap_names[RDMA_UCAP_MAX] = {
+static const char *const ucap_names[RDMA_UCAP_MAX] = {
[RDMA_UCAP_MLX5_CTRL_LOCAL] = "mlx5_perm_ctrl_local",
[RDMA_UCAP_MLX5_CTRL_OTHER_VHCA] = "mlx5_perm_ctrl_other_vhca"
};
(END)
Thanks
>
> diff --git a/drivers/infiniband/core/ucaps.c b/drivers/infiniband/core/ucaps.c
> index 6853c6d078f9..de5cb8bf0a61 100644
> --- a/drivers/infiniband/core/ucaps.c
> +++ b/drivers/infiniband/core/ucaps.c
> @@ -170,7 +170,7 @@ int ib_create_ucap(enum rdma_user_cap type)
> ucap->dev.class = &ucaps_class;
> ucap->dev.devt = MKDEV(MAJOR(ucaps_base_dev), type);
> ucap->dev.release = ucap_dev_release;
> - ret = dev_set_name(&ucap->dev, ucap_names[type]);
> + ret = dev_set_name(&ucap->dev, "%s", ucap_names[type]);
> if (ret)
> goto err_device;
>
> --
> 2.39.5
>