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 >