Re: [PATCH] RDMA/rtrs: Use strscpy() to cache the HCA name

From: Leon Romanovsky

Date: Mon Oct 12 2026 - 04:08:51 EST


On Fri, Oct 09, 2026 at 04:17:15PM +0300, Serhat Kumral wrote:
> As the comment states, the HCA name is cached for sysfs. Use
> strscpy() to copy it directly without unnecessary formatting and
> avoid interpreting format specifiers in the name.
>
> Fixes: 6a98d71daea1 ("RDMA/rtrs: client: main functionality")
> Signed-off-by: Serhat Kumral <serhatkumral1@xxxxxxxxx>
> ---
> found by smatch:
> - drivers/infiniband/ulp/rtrs/rtrs-clt.c:1906 rtrs_rdma_conn_established() warn: call of 'scnprintf' with non-constant format argument
>
> drivers/infiniband/ulp/rtrs/rtrs-clt.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/infiniband/ulp/rtrs/rtrs-clt.c b/drivers/infiniband/ulp/rtrs/rtrs-clt.c
> index 927e3f30483c..c85e22f670ba 100644
> --- a/drivers/infiniband/ulp/rtrs/rtrs-clt.c
> +++ b/drivers/infiniband/ulp/rtrs/rtrs-clt.c
> @@ -1918,8 +1918,8 @@ static int rtrs_rdma_conn_established(struct rtrs_clt_con *con,
> * Cache the hca_port and hca_name for sysfs
> */
> clt_path->hca_port = con->c.cm_id->port_num;
> - scnprintf(clt_path->hca_name, sizeof(clt_path->hca_name),
> - clt_path->s.dev->ib_dev->name);
> + strscpy(clt_path->hca_name, clt_path->s.dev->ib_dev->name,
> + sizeof(clt_path->hca_name));

Haris, Jinpu

These names shouldn't be cached.

Thanks

> clt_path->s.src_addr = con->c.cm_id->route.addr.src_addr;
> /* set for_new_clt, to allow future reconnect on any path */
> clt_path->for_new_clt = 1;
> --
> 2.53.0
>